From 0629cffa6d4efdf04e3ce6f754500bdcdd51eeaf Mon Sep 17 00:00:00 2001 From: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> Date: Tue, 3 Nov 2020 15:29:31 +0800 Subject: [PATCH 01/50] style: make error handlings styke more consistent error handlings in other places are of different style. This PR aims to make the error handling style more consistent --- ecdsa/keygen/round_3.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/ecdsa/keygen/round_3.go b/ecdsa/keygen/round_3.go index c7b89ac7..415ab75d 100644 --- a/ecdsa/keygen/round_3.go +++ b/ecdsa/keygen/round_3.go @@ -114,10 +114,9 @@ func (round *round3) Start() *tss.Error { var multiErr error if len(culprits) > 0 { for _, vssResult := range vssResults { - if vssResult.unWrappedErr == nil { - continue + if vssResult.unWrappedErr != nil { + multiErr = multierror.Append(multiErr, vssResult.unWrappedErr) } - multiErr = multierror.Append(multiErr, vssResult.unWrappedErr) } return round.WrapError(multiErr, culprits...) } From e0e429990033eaac008f51de367fc6708e9fd2a9 Mon Sep 17 00:00:00 2001 From: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> Date: Tue, 3 Nov 2020 15:33:13 +0800 Subject: [PATCH 02/50] apply to eddsa --- eddsa/keygen/round_3.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/eddsa/keygen/round_3.go b/eddsa/keygen/round_3.go index 2b219a99..e0c3818c 100644 --- a/eddsa/keygen/round_3.go +++ b/eddsa/keygen/round_3.go @@ -124,10 +124,9 @@ func (round *round3) Start() *tss.Error { var multiErr error if len(culprits) > 0 { for _, vssResult := range vssResults { - if vssResult.unWrappedErr == nil { - continue + if vssResult.unWrappedErr != nil { + multiErr = multierror.Append(multiErr, vssResult.unWrappedErr) } - multiErr = multierror.Append(multiErr, vssResult.unWrappedErr) } return round.WrapError(multiErr, culprits...) } From 94a28782fe21c72f4fa13160099ce8d650d39f36 Mon Sep 17 00:00:00 2001 From: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> Date: Wed, 4 Nov 2020 15:26:26 +0800 Subject: [PATCH 03/50] more consistent var name in mta.RangeProofAlice rename N2&modN2 in RangeProofAlice.Verify to same style in RangeProofAlice.Prove --- crypto/mta/range_proof.go | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/crypto/mta/range_proof.go b/crypto/mta/range_proof.go index 508439a0..bdff9af0 100644 --- a/crypto/mta/range_proof.go +++ b/crypto/mta/range_proof.go @@ -108,7 +108,6 @@ func (pf *RangeProofAlice) Verify(pk *paillier.PublicKey, NTilde, h1, h2, c *big return false } - N2 := new(big.Int).Mul(pk.N, pk.N) q := tss.EC().Params().N q3 := new(big.Int).Mul(q, q) q3 = new(big.Int).Mul(q, q3) @@ -129,14 +128,14 @@ func (pf *RangeProofAlice) Verify(pk *paillier.PublicKey, NTilde, h1, h2, c *big minusE := new(big.Int).Sub(zero, e) { // 4. gamma^s_1 * s^N * c^-e - modN2 := common.ModInt(N2) + modNSquared := common.ModInt(pk.NSquare()) - cExpMinusE := modN2.Exp(c, minusE) - sExpN := modN2.Exp(pf.S, pk.N) - gammaExpS1 := modN2.Exp(pk.Gamma(), pf.S1) + cExpMinusE := modNSquared.Exp(c, minusE) + sExpN := modNSquared.Exp(pf.S, pk.N) + gammaExpS1 := modNSquared.Exp(pk.Gamma(), pf.S1) // u != (4) - products = modN2.Mul(gammaExpS1, sExpN) - products = modN2.Mul(products, cExpMinusE) + products = modNSquared.Mul(gammaExpS1, sExpN) + products = modNSquared.Mul(products, cExpMinusE) if pf.U.Cmp(products) != 0 { return false } From e033074c9e568817f52bbddff74a8e4ffc6f9491 Mon Sep 17 00:00:00 2001 From: HAOYUatHZ Date: Wed, 4 Nov 2020 16:40:53 +0800 Subject: [PATCH 04/50] refactor crypto lib verification check --- crypto/commitments/commitment.go | 6 +----- crypto/schnorr/schnorr_proof.go | 10 ++-------- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/crypto/commitments/commitment.go b/crypto/commitments/commitment.go index c5a09487..01a22def 100644 --- a/crypto/commitments/commitment.go +++ b/crypto/commitments/commitment.go @@ -58,11 +58,7 @@ func (cmt *HashCommitDecommit) Verify() bool { return false } hash := common.SHA512_256i(D...) - if hash.Cmp(C) == 0 { - return true - } else { - return false - } + return hash.Cmp(C) == 0 } func (cmt *HashCommitDecommit) DeCommit() (bool, HashDeCommitment) { diff --git a/crypto/schnorr/schnorr_proof.go b/crypto/schnorr/schnorr_proof.go index 129509ab..f92c5f81 100644 --- a/crypto/schnorr/schnorr_proof.go +++ b/crypto/schnorr/schnorr_proof.go @@ -70,10 +70,7 @@ func (pf *ZKProof) Verify(X *crypto.ECPoint) bool { if err != nil { return false } - if aXc.X().Cmp(tG.X()) != 0 || aXc.Y().Cmp(tG.Y()) != 0 { - return false - } - return true + return aXc.X().Cmp(tG.X()) == 0 && aXc.Y().Cmp(tG.Y()) == 0 } func (pf *ZKProof) ValidateBasic() bool { @@ -128,10 +125,7 @@ func (pf *ZKVProof) Verify(V, R *crypto.ECPoint) bool { if err != nil { return false } - if tRuG.X().Cmp(aVc.X()) != 0 || tRuG.Y().Cmp(aVc.Y()) != 0 { - return false - } - return true + return tRuG.X().Cmp(aVc.X()) == 0 && tRuG.Y().Cmp(aVc.Y()) == 0 } func (pf *ZKVProof) ValidateBasic() bool { From fe3ce50ce7ef0356568f4d1c30f04b6d52269801 Mon Sep 17 00:00:00 2001 From: Luke Plaster Date: Wed, 4 Nov 2020 18:33:02 +0800 Subject: [PATCH 05/50] extra docs (#74) * create security policy * security: remove a para * security: update the text --- SECURITY.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 SECURITY.md diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 00000000..c555b2ff --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,11 @@ +# Security Policy + +## Reporting a Bug or Vulnerability + +For non-security problems please open an issue in this GitHub repository. + +If you find any security issues please send a report confidentially to security@binance.com. + +Please include notes about the impact of the issue and a walkthrough on how it can be exploited. + +For severe security issues that completely breach the safety of the scheme or leak the secret shares we would be happy to reward you with a bounty based on the security impact and severity. Please include a link to this notice in your email. From 90dd2de3b883dc6fd55956cc9baf7f6c35c1f8c3 Mon Sep 17 00:00:00 2001 From: ackratos Date: Sat, 7 Nov 2020 09:27:46 +0800 Subject: [PATCH 06/50] fix dlog proof potential security issue --- eddsa/keygen/round_3.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/eddsa/keygen/round_3.go b/eddsa/keygen/round_3.go index 2b219a99..4394fcac 100644 --- a/eddsa/keygen/round_3.go +++ b/eddsa/keygen/round_3.go @@ -133,6 +133,8 @@ func (round *round3) Start() *tss.Error { } } { + eight := big.NewInt(8) + eightInv := new(big.Int).ModInverse(eight, tss.EC().Params().N) var err error culprits := make([]*tss.PartyID, 0, len(Ps)) // who caused the error(s) for j, Pj := range Ps { @@ -142,7 +144,7 @@ func (round *round3) Start() *tss.Error { // 11-12. PjVs := vssResults[j].pjVs for c := 0; c <= round.Threshold(); c++ { - Vc[c], err = Vc[c].Add(PjVs[c]) + Vc[c], err = Vc[c].Add(PjVs[c].ScalarMult(eight).ScalarMult(eightInv)) if err != nil { culprits = append(culprits, Pj) } From 9e4ab3904fd30086f5bd47f4c08b5509365e68e7 Mon Sep 17 00:00:00 2001 From: ackratos Date: Sat, 7 Nov 2020 09:28:57 +0800 Subject: [PATCH 07/50] run go fmt check on push --- .github/workflows/gofmt.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/workflows/gofmt.yml diff --git a/.github/workflows/gofmt.yml b/.github/workflows/gofmt.yml new file mode 100644 index 00000000..a6467289 --- /dev/null +++ b/.github/workflows/gofmt.yml @@ -0,0 +1,11 @@ +name: Go-fmt +on: push +jobs: + gofmt: + name: Go fmt project + runs-on: ubuntu-latest + steps: + - name: check out + uses: actions/checkout@v2 + - name: go fmt project + uses: Jerome1337/gofmt-action@v1.0.2 \ No newline at end of file From 92a29488f9ceca2bf445e7275369af7bfda6ce4b Mon Sep 17 00:00:00 2001 From: ackratos Date: Tue, 10 Nov 2020 14:20:24 +0800 Subject: [PATCH 08/50] fix protect keygen/sign/reshare --- crypto/ecpoint.go | 9 +++++++++ eddsa/keygen/round_3.go | 7 ++++--- eddsa/resharing/round_4_new_step_2.go | 5 +++++ eddsa/signing/round_3.go | 1 + 4 files changed, 19 insertions(+), 3 deletions(-) diff --git a/crypto/ecpoint.go b/crypto/ecpoint.go index 9ea5afe0..91411373 100644 --- a/crypto/ecpoint.go +++ b/crypto/ecpoint.go @@ -24,6 +24,11 @@ type ECPoint struct { coords [2]*big.Int } +var ( + eight = big.NewInt(8) + eightInv = new(big.Int).ModInverse(eight, tss.EC().Params().N) +) + // Creates a new ECPoint and checks that the given coordinates are on the elliptic curve. func NewECPoint(curve elliptic.Curve, X, Y *big.Int) (*ECPoint, error) { if !isOnCurve(curve, X, Y) { @@ -77,6 +82,10 @@ func (p *ECPoint) ValidateBasic() bool { return p != nil && p.coords[0] != nil && p.coords[1] != nil && p.IsOnCurve() } +func (p *ECPoint) EightInvEight() *ECPoint { + return p.ScalarMult(eight).ScalarMult(eightInv) +} + func ScalarBaseMult(curve elliptic.Curve, k *big.Int) *ECPoint { x, y := curve.ScalarBaseMult(k.Bytes()) p, _ := NewECPoint(curve, x, y) // it must be on the curve, no need to check. diff --git a/eddsa/keygen/round_3.go b/eddsa/keygen/round_3.go index 4394fcac..42286d1a 100644 --- a/eddsa/keygen/round_3.go +++ b/eddsa/keygen/round_3.go @@ -78,6 +78,9 @@ func (round *round3) Start() *tss.Error { return } PjVs, err := crypto.UnFlattenECPoints(tss.EC(), flatPolyGs) + for i, PjV := range PjVs { + PjVs[i] = PjV.EightInvEight() + } if err != nil { ch <- vssOut{err, nil} return @@ -133,8 +136,6 @@ func (round *round3) Start() *tss.Error { } } { - eight := big.NewInt(8) - eightInv := new(big.Int).ModInverse(eight, tss.EC().Params().N) var err error culprits := make([]*tss.PartyID, 0, len(Ps)) // who caused the error(s) for j, Pj := range Ps { @@ -144,7 +145,7 @@ func (round *round3) Start() *tss.Error { // 11-12. PjVs := vssResults[j].pjVs for c := 0; c <= round.Threshold(); c++ { - Vc[c], err = Vc[c].Add(PjVs[c].ScalarMult(eight).ScalarMult(eightInv)) + Vc[c], err = Vc[c].Add(PjVs[c]) if err != nil { culprits = append(culprits, Pj) } diff --git a/eddsa/resharing/round_4_new_step_2.go b/eddsa/resharing/round_4_new_step_2.go index fccbaf51..ea2c9c1b 100644 --- a/eddsa/resharing/round_4_new_step_2.go +++ b/eddsa/resharing/round_4_new_step_2.go @@ -59,6 +59,11 @@ func (round *round4) Start() *tss.Error { if err != nil { return round.WrapError(err, round.Parties().IDs()[j]) } + + for i, v := range vj { + vj[i] = v.EightInvEight() + } + vjc[j] = vj r3msg1 := round.temp.dgRound3Message1s[j].Content().(*DGRound3Message1) diff --git a/eddsa/signing/round_3.go b/eddsa/signing/round_3.go index 2fd822a4..a42d7601 100644 --- a/eddsa/signing/round_3.go +++ b/eddsa/signing/round_3.go @@ -50,6 +50,7 @@ func (round *round3) Start() *tss.Error { } Rj, err := crypto.NewECPoint(tss.EC(), coordinates[0], coordinates[1]) + Rj = Rj.EightInvEight() if err != nil { return round.WrapError(errors.Wrapf(err, "NewECPoint(Rj)"), Pj) } From cfed25c00a2d00774f92fdfeb6de0fc971105025 Mon Sep 17 00:00:00 2001 From: ackratos Date: Fri, 13 Nov 2020 08:40:33 +0800 Subject: [PATCH 09/50] fix test failure --- crypto/ecpoint.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/crypto/ecpoint.go b/crypto/ecpoint.go index 91411373..1fc05222 100644 --- a/crypto/ecpoint.go +++ b/crypto/ecpoint.go @@ -15,6 +15,8 @@ import ( "fmt" "math/big" + "github.com/decred/dcrd/dcrec/edwards/v2" + "github.com/binance-chain/tss-lib/tss" ) @@ -26,7 +28,7 @@ type ECPoint struct { var ( eight = big.NewInt(8) - eightInv = new(big.Int).ModInverse(eight, tss.EC().Params().N) + eightInv = new(big.Int).ModInverse(eight, edwards.Edwards().Params().N) ) // Creates a new ECPoint and checks that the given coordinates are on the elliptic curve. From 0d6625b357981fb4dac99d0222b6d0171a1662c3 Mon Sep 17 00:00:00 2001 From: ackratos Date: Fri, 13 Nov 2020 10:54:34 +0800 Subject: [PATCH 10/50] tweak test timeout --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 92758806..a2466e02 100644 --- a/Makefile +++ b/Makefile @@ -22,12 +22,12 @@ build: protob test_unit: @echo "--> Running Unit Tests" @echo "!!! WARNING: This will take a long time :)" - go test -timeout 20m $(PACKAGES) + go test -timeout 60m $(PACKAGES) test_unit_race: @echo "--> Running Unit Tests (with Race Detection)" @echo "!!! WARNING: This will take a long time :)" - go test -timeout 30m -race $(PACKAGES) + go test -timeout 60m -race $(PACKAGES) test: make test_unit From 8060d05cd3183d5cd785691b00b1ed894e7dbc02 Mon Sep 17 00:00:00 2001 From: HAOYUatHZ <37070449+HAOYUatHZ@users.noreply.github.com> Date: Thu, 19 Nov 2020 17:05:57 +0800 Subject: [PATCH 11/50] fix typos (#119) --- crypto/schnorr/schnorr_proof_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crypto/schnorr/schnorr_proof_test.go b/crypto/schnorr/schnorr_proof_test.go index b097f93a..f8a2503f 100644 --- a/crypto/schnorr/schnorr_proof_test.go +++ b/crypto/schnorr/schnorr_proof_test.go @@ -81,7 +81,7 @@ func TestSchnorrVProofVerifyBadPartialV(t *testing.T) { proof, _ := NewZKVProof(V, R, s, l) res := proof.Verify(V, R) - assert.False(t, res, "verify result must be true") + assert.False(t, res, "verify result must be false") } func TestSchnorrVProofVerifyBadS(t *testing.T) { @@ -98,5 +98,5 @@ func TestSchnorrVProofVerifyBadS(t *testing.T) { proof, _ := NewZKVProof(V, R, s2, l) res := proof.Verify(V, R) - assert.False(t, res, "verify result must be true") + assert.False(t, res, "verify result must be false") } From e7030a5d5fcd9c52c97a6888dbfe5d438349eb47 Mon Sep 17 00:00:00 2001 From: ackratos Date: Thu, 3 Dec 2020 13:29:44 +0800 Subject: [PATCH 12/50] S in eddsa signature is not encoded correctly --- eddsa/signing/finalize.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eddsa/signing/finalize.go b/eddsa/signing/finalize.go index 7313580a..87c9e34b 100644 --- a/eddsa/signing/finalize.go +++ b/eddsa/signing/finalize.go @@ -37,11 +37,12 @@ func (round *finalization) Start() *tss.Error { edwards25519.ScMulAdd(&tmpSumS, sumS, bigIntToEncodedBytes(big.NewInt(1)), sjBytes) sumS = &tmpSumS } + s := encodedBytesToBigInt(sumS) // save the signature for final output round.data.Signature = append(bigIntToEncodedBytes(round.temp.r)[:], sumS[:]...) round.data.R = round.temp.r.Bytes() - round.data.S = sumS[:] + round.data.S = s.Bytes() round.data.M = round.temp.m.Bytes() pk := edwards.PublicKey{ @@ -49,7 +50,6 @@ func (round *finalization) Start() *tss.Error { X: round.key.EDDSAPub.X(), Y: round.key.EDDSAPub.Y(), } - s := encodedBytesToBigInt(sumS) ok := edwards.Verify(&pk, round.temp.m.Bytes(), round.temp.r, s) if !ok { From 49366aa435b3d370283820d567c75fe0ea30079b Mon Sep 17 00:00:00 2001 From: cong Date: Fri, 2 Apr 2021 13:49:14 +0800 Subject: [PATCH 13/50] fix R and S may not be 32 bytes (#130) * fix R and S may not be 32 bytes * refactor according to review comments --- ecdsa/signing/finalize.go | 17 ++++++++++++++--- ecdsa/signing/local_party_test.go | 8 ++++++++ 2 files changed, 22 insertions(+), 3 deletions(-) diff --git a/ecdsa/signing/finalize.go b/ecdsa/signing/finalize.go index ae0ca8ac..60bb89e8 100644 --- a/ecdsa/signing/finalize.go +++ b/ecdsa/signing/finalize.go @@ -56,10 +56,11 @@ func (round *finalization) Start() *tss.Error { } // save the signature for final output - round.data.Signature = append(round.temp.rx.Bytes(), sumS.Bytes()...) + bitSizeInBytes := tss.EC().Params().BitSize / 8 + round.data.R = padToLengthBytesInPlace(round.temp.rx.Bytes(), bitSizeInBytes) + round.data.S = padToLengthBytesInPlace(sumS.Bytes(), bitSizeInBytes) + round.data.Signature = append(round.data.R, round.data.S...) round.data.SignatureRecovery = []byte{byte(recid)} - round.data.R = round.temp.rx.Bytes() - round.data.S = sumS.Bytes() round.data.M = round.temp.m.Bytes() pk := ecdsa.PublicKey{ @@ -90,3 +91,13 @@ func (round *finalization) Update() (bool, *tss.Error) { func (round *finalization) NextRound() tss.Round { return nil // finished! } + +func padToLengthBytesInPlace(src []byte, length int) []byte { + oriLen := len(src) + if oriLen < length { + for i := 0; i < length-oriLen; i++ { + src = append([]byte{0}, src...) + } + } + return src +} diff --git a/ecdsa/signing/local_party_test.go b/ecdsa/signing/local_party_test.go index 574644db..37a00d7f 100644 --- a/ecdsa/signing/local_party_test.go +++ b/ecdsa/signing/local_party_test.go @@ -129,3 +129,11 @@ signing: } } } + +func TestFillTo32BytesInPlace(t *testing.T) { + s := big.NewInt(123456789) + normalizedS := padToLengthBytesInPlace(s.Bytes(), 32) + assert.True(t, big.NewInt(0).SetBytes(normalizedS).Cmp(s) == 0) + assert.Equal(t, 32, len(normalizedS)) + assert.NotEqual(t, 32, len(s.Bytes())) +} From 1aa0a7539565ced94eb971bda5816d3ebb51d37f Mon Sep 17 00:00:00 2001 From: Fitz <44373302+FitzLu@users.noreply.github.com> Date: Tue, 6 Jul 2021 11:51:20 +0800 Subject: [PATCH 14/50] cherry pick > curve as parameter (#137) * move curve into tss.Parameters * regen proto with full package name * pass curve through parameter * add curve name in ecpoint json serialization --- common/signature.pb.go | 42 ++++++---- crypto/ecpoint.go | 28 ++++++- crypto/ecpoint_test.go | 52 ++++++++++++ crypto/mta/proofs.go | 30 +++---- crypto/mta/range_proof.go | 10 +-- crypto/mta/range_proof_test.go | 4 +- crypto/mta/share_protocol.go | 29 ++++--- crypto/mta/share_protocol_test.go | 12 +-- crypto/schnorr/schnorr_proof.go | 29 ++++--- crypto/vss/feldman_vss.go | 32 ++++---- crypto/vss/feldman_vss_test.go | 14 ++-- ecdsa/keygen/ecdsa-keygen.pb.go | 74 +++++++++-------- ecdsa/keygen/local_party_test.go | 14 ++-- ecdsa/keygen/messages.go | 9 -- ecdsa/keygen/round_1.go | 4 +- ecdsa/keygen/round_3.go | 10 +-- ecdsa/keygen/test_utils.go | 8 ++ ecdsa/resharing/ecdsa-resharing.pb.go | 86 ++++++++++--------- ecdsa/resharing/local_party_test.go | 10 +-- ecdsa/resharing/messages.go | 15 +--- ecdsa/resharing/round_1_old_step_1.go | 6 +- ecdsa/resharing/round_4_new_step_2.go | 6 +- ecdsa/signing/ecdsa-signing.pb.go | 114 ++++++++++++++------------ ecdsa/signing/finalize.go | 12 +-- ecdsa/signing/local_party_test.go | 4 +- ecdsa/signing/messages.go | 32 ++------ ecdsa/signing/prepare.go | 6 +- ecdsa/signing/round_1.go | 12 +-- ecdsa/signing/round_2.go | 2 + ecdsa/signing/round_3.go | 6 +- ecdsa/signing/round_4.go | 2 +- ecdsa/signing/round_5.go | 10 +-- ecdsa/signing/round_7.go | 30 +++---- ecdsa/signing/round_9.go | 4 +- eddsa/keygen/eddsa-keygen.pb.go | 42 ++++++---- eddsa/keygen/local_party_test.go | 20 ++--- eddsa/keygen/messages.go | 13 +-- eddsa/keygen/round_1.go | 4 +- eddsa/keygen/round_3.go | 14 ++-- eddsa/keygen/test_utils.go | 8 ++ eddsa/resharing/eddsa-resharing.pb.go | 53 ++++++------ eddsa/resharing/local_party_test.go | 15 ++-- eddsa/resharing/messages.go | 15 +--- eddsa/resharing/round_1_old_step_1.go | 6 +- eddsa/resharing/round_4_new_step_2.go | 6 +- eddsa/signing/eddsa-signing.pb.go | 42 ++++++---- eddsa/signing/finalize.go | 2 +- eddsa/signing/local_party_test.go | 9 +- eddsa/signing/messages.go | 13 +-- eddsa/signing/prepare.go | 6 +- eddsa/signing/round_1.go | 6 +- eddsa/signing/round_3.go | 6 +- eddsa/signing/utils.go | 6 +- go.mod | 3 +- go.sum | 12 +-- protob/ecdsa-keygen.proto | 2 +- protob/ecdsa-resharing.proto | 2 +- protob/ecdsa-signing.proto | 2 +- protob/eddsa-keygen.proto | 2 +- protob/eddsa-resharing.proto | 4 +- protob/eddsa-signing.proto | 2 +- protob/message.proto | 2 +- protob/signature.proto | 3 +- tss/curve.go | 48 +++++++++++ tss/message.pb.go | 82 +++++++++--------- tss/params.go | 13 ++- 66 files changed, 697 insertions(+), 524 deletions(-) diff --git a/common/signature.pb.go b/common/signature.pb.go index 43049d2d..66d437d0 100644 --- a/common/signature.pb.go +++ b/common/signature.pb.go @@ -1,12 +1,19 @@ +// Copyright © 2019-2020 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. -// source: protob/signature.proto +// source: signature.proto package common import ( fmt "fmt" - proto "github.com/golang/protobuf/proto" math "math" + + proto "github.com/golang/protobuf/proto" ) // Reference imports to suppress errors if they are not otherwise used. @@ -40,7 +47,7 @@ func (m *SignatureData) Reset() { *m = SignatureData{} } func (m *SignatureData) String() string { return proto.CompactTextString(m) } func (*SignatureData) ProtoMessage() {} func (*SignatureData) Descriptor() ([]byte, []int) { - return fileDescriptor_a73ad5e44f61b3fb, []int{0} + return fileDescriptor_76962cacebaec211, []int{0} } func (m *SignatureData) XXX_Unmarshal(b []byte) error { @@ -97,20 +104,21 @@ func (m *SignatureData) GetM() []byte { } func init() { - proto.RegisterType((*SignatureData)(nil), "SignatureData") + proto.RegisterType((*SignatureData)(nil), "binance.tsslib.SignatureData") } -func init() { proto.RegisterFile("protob/signature.proto", fileDescriptor_a73ad5e44f61b3fb) } - -var fileDescriptor_a73ad5e44f61b3fb = []byte{ - // 139 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2b, 0x28, 0xca, 0x2f, - 0xc9, 0x4f, 0xd2, 0x2f, 0xce, 0x4c, 0xcf, 0x4b, 0x2c, 0x29, 0x2d, 0x4a, 0xd5, 0x03, 0x0b, 0x28, - 0xb5, 0x31, 0x72, 0xf1, 0x06, 0xc3, 0xc4, 0x5c, 0x12, 0x4b, 0x12, 0x85, 0x64, 0xb8, 0x38, 0xe1, - 0x8a, 0x24, 0x18, 0x15, 0x18, 0x35, 0x78, 0x82, 0x10, 0x02, 0x42, 0xba, 0x5c, 0x42, 0x70, 0x4e, - 0x7c, 0x51, 0x6a, 0x72, 0x7e, 0x59, 0x6a, 0x51, 0xa5, 0x04, 0x13, 0x58, 0x99, 0x20, 0x5c, 0x26, - 0x08, 0x2a, 0x21, 0xc4, 0xc3, 0xc5, 0x58, 0x24, 0xc1, 0x0c, 0x96, 0x65, 0x2c, 0x02, 0xf1, 0x8a, - 0x25, 0x58, 0x20, 0xbc, 0x62, 0x10, 0x2f, 0x57, 0x82, 0x15, 0xc2, 0xcb, 0x75, 0xe2, 0x8a, 0xe2, - 0xd0, 0xd3, 0x4f, 0xce, 0xcf, 0xcd, 0xcd, 0xcf, 0x4b, 0x62, 0x03, 0xbb, 0xcd, 0x18, 0x10, 0x00, - 0x00, 0xff, 0xff, 0x99, 0x1e, 0xab, 0x5b, 0xb5, 0x00, 0x00, 0x00, +func init() { proto.RegisterFile("signature.proto", fileDescriptor_76962cacebaec211) } + +var fileDescriptor_76962cacebaec211 = []byte{ + // 150 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2f, 0xce, 0x4c, 0xcf, + 0x4b, 0x2c, 0x29, 0x2d, 0x4a, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x4b, 0xca, 0xcc, + 0x4b, 0xcc, 0x4b, 0x4e, 0xd5, 0x2b, 0x29, 0x2e, 0xce, 0xc9, 0x4c, 0x52, 0x6a, 0x63, 0xe4, 0xe2, + 0x0d, 0x86, 0xa9, 0x71, 0x49, 0x2c, 0x49, 0x14, 0x92, 0xe1, 0xe2, 0x84, 0x6b, 0x92, 0x60, 0x54, + 0x60, 0xd4, 0xe0, 0x09, 0x42, 0x08, 0x08, 0xe9, 0x72, 0x09, 0xc1, 0x39, 0xf1, 0x45, 0xa9, 0xc9, + 0xf9, 0x65, 0xa9, 0x45, 0x95, 0x12, 0x4c, 0x60, 0x65, 0x82, 0x70, 0x99, 0x20, 0xa8, 0x84, 0x10, + 0x0f, 0x17, 0x63, 0x91, 0x04, 0x33, 0x58, 0x96, 0xb1, 0x08, 0xc4, 0x2b, 0x96, 0x60, 0x81, 0xf0, + 0x8a, 0x41, 0xbc, 0x5c, 0x09, 0x56, 0x08, 0x2f, 0xd7, 0x89, 0x23, 0x8a, 0x2d, 0x39, 0x3f, 0x37, + 0x37, 0x3f, 0x2f, 0x89, 0x0d, 0xec, 0x52, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcf, 0xe1, + 0x86, 0xde, 0xbc, 0x00, 0x00, 0x00, } diff --git a/crypto/ecpoint.go b/crypto/ecpoint.go index 1fc05222..51f91a12 100644 --- a/crypto/ecpoint.go +++ b/crypto/ecpoint.go @@ -68,6 +68,10 @@ func (p *ECPoint) IsOnCurve() bool { return isOnCurve(p.curve, p.coords[0], p.coords[1]) } +func (p *ECPoint) Curve() elliptic.Curve { + return p.curve +} + func (p *ECPoint) Equals(p2 *ECPoint) bool { if p == nil || p2 == nil { return false @@ -210,24 +214,44 @@ func (p *ECPoint) GobDecode(buf []byte) error { // crypto.ECPoint is not inherently json marshal-able func (p *ECPoint) MarshalJSON() ([]byte, error) { + ecName, ok := tss.GetCurveName(p.curve) + if !ok { + return nil, fmt.Errorf("cannot find %T name in curve registry, please call tss.RegisterCurve(name, curve) to register it first", p.curve) + } + return json.Marshal(&struct { + Curve string Coords [2]*big.Int }{ + Curve: string(ecName), Coords: p.coords, }) } func (p *ECPoint) UnmarshalJSON(payload []byte) error { aux := &struct { + Curve string Coords [2]*big.Int }{} if err := json.Unmarshal(payload, &aux); err != nil { return err } - p.curve = tss.EC() p.coords = [2]*big.Int{aux.Coords[0], aux.Coords[1]} + + if len(aux.Curve) > 0 { + ec, ok := tss.GetCurveByName(tss.CurveName(aux.Curve)) + if !ok { + return fmt.Errorf("cannot find curve named with %s in curve registry, please call tss.RegisterCurve(name, curve) to register it first", aux.Curve) + } + p.curve = ec + } else { + // forward compatible, use global ec as default value + p.curve = tss.EC() + } + if !p.IsOnCurve() { - return errors.New("ECPoint.UnmarshalJSON: the point is not on the elliptic curve") + return fmt.Errorf("ECPoint.UnmarshalJSON: the point is not on the elliptic curve (%T) ", p.curve) } + return nil } diff --git a/crypto/ecpoint_test.go b/crypto/ecpoint_test.go index 6a4962ae..3d79f7d0 100644 --- a/crypto/ecpoint_test.go +++ b/crypto/ecpoint_test.go @@ -7,10 +7,16 @@ package crypto_test import ( + "encoding/hex" + "encoding/json" "math/big" "reflect" "testing" + "github.com/btcsuite/btcd/btcec" + "github.com/decred/dcrd/dcrec/edwards/v2" + "github.com/stretchr/testify/assert" + . "github.com/binance-chain/tss-lib/crypto" "github.com/binance-chain/tss-lib/tss" ) @@ -113,3 +119,49 @@ func TestUnFlattenECPoints(t *testing.T) { }) } } + +func TestS256EcpointJsonSerialization(t *testing.T) { + ec := btcec.S256() + tss.RegisterCurve("secp256k1", ec) + + pubKeyBytes, err := hex.DecodeString("03935336acb03b2b801d8f8ac5e92c56c4f6e93319901fdfffba9d340a874e2879") + assert.NoError(t, err) + pbk, err := btcec.ParsePubKey(pubKeyBytes, btcec.S256()) + assert.NoError(t, err) + + point, err := NewECPoint(ec, pbk.X, pbk.Y) + assert.NoError(t, err) + bz, err := json.Marshal(point) + assert.NoError(t, err) + assert.True(t, len(bz) > 0) + + var umpoint ECPoint + err = json.Unmarshal(bz, &umpoint) + assert.NoError(t, err) + + assert.True(t, point.Equals(&umpoint)) + assert.True(t, reflect.TypeOf(point.Curve()) == reflect.TypeOf(umpoint.Curve())) +} + +func TestEdwardsEcpointJsonSerialization(t *testing.T) { + ec := edwards.Edwards() + tss.RegisterCurve("ed25519", ec) + + pubKeyBytes, err := hex.DecodeString("ae1e5bf5f3d6bf58b5c222088671fcbe78b437e28fae944c793897b26091f249") + assert.NoError(t, err) + pbk, err := edwards.ParsePubKey(pubKeyBytes) + assert.NoError(t, err) + + point, err := NewECPoint(ec, pbk.X, pbk.Y) + assert.NoError(t, err) + bz, err := json.Marshal(point) + assert.NoError(t, err) + assert.True(t, len(bz) > 0) + + var umpoint ECPoint + err = json.Unmarshal(bz, &umpoint) + assert.NoError(t, err) + + assert.True(t, point.Equals(&umpoint)) + assert.True(t, reflect.TypeOf(point.Curve()) == reflect.TypeOf(umpoint.Curve())) +} diff --git a/crypto/mta/proofs.go b/crypto/mta/proofs.go index e827af16..28dc4f16 100644 --- a/crypto/mta/proofs.go +++ b/crypto/mta/proofs.go @@ -7,6 +7,7 @@ package mta import ( + "crypto/elliptic" "errors" "fmt" "math/big" @@ -14,7 +15,6 @@ import ( "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" "github.com/binance-chain/tss-lib/crypto/paillier" - "github.com/binance-chain/tss-lib/tss" ) const ( @@ -35,14 +35,14 @@ type ( // ProveBobWC implements Bob's proof both with or without check "ProveMtawc_Bob" and "ProveMta_Bob" used in the MtA protocol from GG18Spec (9) Figs. 10 & 11. // an absent `X` generates the proof without the X consistency check X = g^x -func ProveBobWC(pk *paillier.PublicKey, NTilde, h1, h2, c1, c2, x, y, r *big.Int, X *crypto.ECPoint) (*ProofBobWC, error) { +func ProveBobWC(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c2, x, y, r *big.Int, X *crypto.ECPoint) (*ProofBobWC, error) { if pk == nil || NTilde == nil || h1 == nil || h2 == nil || c1 == nil || c2 == nil || x == nil || y == nil || r == nil { return nil, errors.New("ProveBob() received a nil argument") } NSquared := pk.NSquare() - q := tss.EC().Params().N + q := ec.Params().N q3 := new(big.Int).Mul(q, q) q3 = new(big.Int).Mul(q, q3) qNTilde := new(big.Int).Mul(q, NTilde) @@ -65,9 +65,9 @@ func ProveBobWC(pk *paillier.PublicKey, NTilde, h1, h2, c1, c2, x, y, r *big.Int gamma := common.GetRandomPositiveRelativelyPrimeInt(pk.N) // 5. - u := crypto.NewECPointNoCurveCheck(tss.EC(), zero, zero) // initialization suppresses an IDE warning + u := crypto.NewECPointNoCurveCheck(ec, zero, zero) // initialization suppresses an IDE warning if X != nil { - u = crypto.ScalarBaseMult(tss.EC(), alpha) + u = crypto.ScalarBaseMult(ec, alpha) } // 6. @@ -135,22 +135,22 @@ func ProveBobWC(pk *paillier.PublicKey, NTilde, h1, h2, c1, c2, x, y, r *big.Int } // ProveBob implements Bob's proof "ProveMta_Bob" used in the MtA protocol from GG18Spec (9) Fig. 11. -func ProveBob(pk *paillier.PublicKey, NTilde, h1, h2, c1, c2, x, y, r *big.Int) (*ProofBob, error) { +func ProveBob(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c2, x, y, r *big.Int) (*ProofBob, error) { // the Bob proof ("with check") contains the ProofBob "without check"; this method extracts and returns it // X is supplied as nil to exclude it from the proof hash - pf, err := ProveBobWC(pk, NTilde, h1, h2, c1, c2, x, y, r, nil) + pf, err := ProveBobWC(ec, pk, NTilde, h1, h2, c1, c2, x, y, r, nil) if err != nil { return nil, err } return pf.ProofBob, nil } -func ProofBobWCFromBytes(bzs [][]byte) (*ProofBobWC, error) { +func ProofBobWCFromBytes(ec elliptic.Curve, bzs [][]byte) (*ProofBobWC, error) { proofBob, err := ProofBobFromBytes(bzs) if err != nil { return nil, err } - point, err := crypto.NewECPoint(tss.EC(), + point, err := crypto.NewECPoint(ec, new(big.Int).SetBytes(bzs[10]), new(big.Int).SetBytes(bzs[11])) if err != nil { @@ -185,12 +185,12 @@ func ProofBobFromBytes(bzs [][]byte) (*ProofBob, error) { // ProveBobWC.Verify implements verification of Bob's proof with check "VerifyMtawc_Bob" used in the MtA protocol from GG18Spec (9) Fig. 10. // an absent `X` verifies a proof generated without the X consistency check X = g^x -func (pf *ProofBobWC) Verify(pk *paillier.PublicKey, NTilde, h1, h2, c1, c2 *big.Int, X *crypto.ECPoint) bool { +func (pf *ProofBobWC) Verify(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c2 *big.Int, X *crypto.ECPoint) bool { if pk == nil || NTilde == nil || h1 == nil || h2 == nil || c1 == nil || c2 == nil { return false } - q := tss.EC().Params().N + q := ec.Params().N q3 := new(big.Int).Mul(q, q) q3 = new(big.Int).Mul(q, q3) @@ -216,8 +216,8 @@ func (pf *ProofBobWC) Verify(pk *paillier.PublicKey, NTilde, h1, h2, c1, c2 *big // 4. runs only in the "with check" mode from Fig. 10 if X != nil { - s1ModQ := new(big.Int).Mod(pf.S1, tss.EC().Params().N) - gS1 := crypto.ScalarBaseMult(tss.EC(), s1ModQ) + s1ModQ := new(big.Int).Mod(pf.S1, ec.Params().N) + gS1 := crypto.ScalarBaseMult(ec, s1ModQ) xEU, err := X.ScalarMult(e).Add(pf.U) if err != nil || !gS1.Equals(xEU) { return false @@ -268,12 +268,12 @@ func (pf *ProofBobWC) Verify(pk *paillier.PublicKey, NTilde, h1, h2, c1, c2 *big } // ProveBob.Verify implements verification of Bob's proof without check "VerifyMta_Bob" used in the MtA protocol from GG18Spec (9) Fig. 11. -func (pf *ProofBob) Verify(pk *paillier.PublicKey, NTilde, h1, h2, c1, c2 *big.Int) bool { +func (pf *ProofBob) Verify(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c2 *big.Int) bool { if pf == nil { return false } pfWC := &ProofBobWC{ProofBob: pf, U: nil} - return pfWC.Verify(pk, NTilde, h1, h2, c1, c2, nil) + return pfWC.Verify(ec, pk, NTilde, h1, h2, c1, c2, nil) } func (pf *ProofBob) ValidateBasic() bool { diff --git a/crypto/mta/range_proof.go b/crypto/mta/range_proof.go index bdff9af0..471cb498 100644 --- a/crypto/mta/range_proof.go +++ b/crypto/mta/range_proof.go @@ -7,13 +7,13 @@ package mta import ( + "crypto/elliptic" "errors" "fmt" "math/big" "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto/paillier" - "github.com/binance-chain/tss-lib/tss" ) const ( @@ -31,12 +31,12 @@ type ( ) // ProveRangeAlice implements Alice's range proof used in the MtA and MtAwc protocols from GG18Spec (9) Fig. 9. -func ProveRangeAlice(pk *paillier.PublicKey, c, NTilde, h1, h2, m, r *big.Int) (*RangeProofAlice, error) { +func ProveRangeAlice(ec elliptic.Curve, pk *paillier.PublicKey, c, NTilde, h1, h2, m, r *big.Int) (*RangeProofAlice, error) { if pk == nil || NTilde == nil || h1 == nil || h2 == nil || c == nil || m == nil || r == nil { return nil, errors.New("ProveRangeAlice constructor received nil value(s)") } - q := tss.EC().Params().N + q := ec.Params().N q3 := new(big.Int).Mul(q, q) q3 = new(big.Int).Mul(q, q3) qNTilde := new(big.Int).Mul(q, NTilde) @@ -103,12 +103,12 @@ func RangeProofAliceFromBytes(bzs [][]byte) (*RangeProofAlice, error) { }, nil } -func (pf *RangeProofAlice) Verify(pk *paillier.PublicKey, NTilde, h1, h2, c *big.Int) bool { +func (pf *RangeProofAlice) Verify(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c *big.Int) bool { if pf == nil || !pf.ValidateBasic() || pk == nil || NTilde == nil || h1 == nil || h2 == nil || c == nil { return false } - q := tss.EC().Params().N + q := ec.Params().N q3 := new(big.Int).Mul(q, q) q3 = new(big.Int).Mul(q, q3) diff --git a/crypto/mta/range_proof_test.go b/crypto/mta/range_proof_test.go index 73a9950a..3e44394e 100644 --- a/crypto/mta/range_proof_test.go +++ b/crypto/mta/range_proof_test.go @@ -37,9 +37,9 @@ func TestProveRangeAlice(t *testing.T) { primes := [2]*big.Int{common.GetRandomPrimeInt(testSafePrimeBits), common.GetRandomPrimeInt(testSafePrimeBits)} NTildei, h1i, h2i, err := crypto.GenerateNTildei(primes) assert.NoError(t, err) - proof, err := ProveRangeAlice(pk, c, NTildei, h1i, h2i, m, r) + proof, err := ProveRangeAlice(tss.EC(), pk, c, NTildei, h1i, h2i, m, r) assert.NoError(t, err) - ok := proof.Verify(pk, NTildei, h1i, h2i, c) + ok := proof.Verify(tss.EC(), pk, NTildei, h1i, h2i, c) assert.True(t, ok, "proof must verify") } diff --git a/crypto/mta/share_protocol.go b/crypto/mta/share_protocol.go index faaa9f31..37663079 100644 --- a/crypto/mta/share_protocol.go +++ b/crypto/mta/share_protocol.go @@ -7,16 +7,17 @@ package mta import ( + "crypto/elliptic" "errors" "math/big" "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" "github.com/binance-chain/tss-lib/crypto/paillier" - "github.com/binance-chain/tss-lib/tss" ) func AliceInit( + ec elliptic.Curve, pkA *paillier.PublicKey, a, NTildeB, h1B, h2B *big.Int, ) (cA *big.Int, pf *RangeProofAlice, err error) { @@ -24,20 +25,21 @@ func AliceInit( if err != nil { return nil, nil, err } - pf, err = ProveRangeAlice(pkA, cA, NTildeB, h1B, h2B, a, rA) + pf, err = ProveRangeAlice(ec, pkA, cA, NTildeB, h1B, h2B, a, rA) return cA, pf, err } func BobMid( + ec elliptic.Curve, pkA *paillier.PublicKey, pf *RangeProofAlice, b, cA, NTildeA, h1A, h2A, NTildeB, h1B, h2B *big.Int, ) (beta, cB, betaPrm *big.Int, piB *ProofBob, err error) { - if !pf.Verify(pkA, NTildeB, h1B, h2B, cA) { + if !pf.Verify(ec, pkA, NTildeB, h1B, h2B, cA) { err = errors.New("RangeProofAlice.Verify() returned false") return } - q := tss.EC().Params().N + q := ec.Params().N betaPrm = common.GetRandomPositiveInt(pkA.N) cBetaPrm, cRand, err := pkA.EncryptAndReturnRandomness(betaPrm) if err != nil { @@ -52,21 +54,22 @@ func BobMid( return } beta = common.ModInt(q).Sub(zero, betaPrm) - piB, err = ProveBob(pkA, NTildeA, h1A, h2A, cA, cB, b, betaPrm, cRand) + piB, err = ProveBob(ec, pkA, NTildeA, h1A, h2A, cA, cB, b, betaPrm, cRand) return } func BobMidWC( + ec elliptic.Curve, pkA *paillier.PublicKey, pf *RangeProofAlice, b, cA, NTildeA, h1A, h2A, NTildeB, h1B, h2B *big.Int, B *crypto.ECPoint, ) (beta, cB, betaPrm *big.Int, piB *ProofBobWC, err error) { - if !pf.Verify(pkA, NTildeB, h1B, h2B, cA) { + if !pf.Verify(ec, pkA, NTildeB, h1B, h2B, cA) { err = errors.New("RangeProofAlice.Verify() returned false") return } - q := tss.EC().Params().N + q := ec.Params().N betaPrm = common.GetRandomPositiveInt(pkA.N) cBetaPrm, cRand, err := pkA.EncryptAndReturnRandomness(betaPrm) if err != nil { @@ -81,41 +84,43 @@ func BobMidWC( return } beta = common.ModInt(q).Sub(zero, betaPrm) - piB, err = ProveBobWC(pkA, NTildeA, h1A, h2A, cA, cB, b, betaPrm, cRand, B) + piB, err = ProveBobWC(ec, pkA, NTildeA, h1A, h2A, cA, cB, b, betaPrm, cRand, B) return } func AliceEnd( + ec elliptic.Curve, pkA *paillier.PublicKey, pf *ProofBob, h1A, h2A, cA, cB, NTildeA *big.Int, sk *paillier.PrivateKey, ) (*big.Int, error) { - if !pf.Verify(pkA, NTildeA, h1A, h2A, cA, cB) { + if !pf.Verify(ec, pkA, NTildeA, h1A, h2A, cA, cB) { return nil, errors.New("ProofBob.Verify() returned false") } alphaPrm, err := sk.Decrypt(cB) if err != nil { return nil, err } - q := tss.EC().Params().N + q := ec.Params().N return new(big.Int).Mod(alphaPrm, q), nil } func AliceEndWC( + ec elliptic.Curve, pkA *paillier.PublicKey, pf *ProofBobWC, B *crypto.ECPoint, cA, cB, NTildeA, h1A, h2A *big.Int, sk *paillier.PrivateKey, ) (*big.Int, error) { - if !pf.Verify(pkA, NTildeA, h1A, h2A, cA, cB, B) { + if !pf.Verify(ec, pkA, NTildeA, h1A, h2A, cA, cB, B) { return nil, errors.New("ProofBobWC.Verify() returned false") } alphaPrm, err := sk.Decrypt(cB) if err != nil { return nil, err } - q := tss.EC().Params().N + q := ec.Params().N return new(big.Int).Mod(alphaPrm, q), nil } diff --git a/crypto/mta/share_protocol_test.go b/crypto/mta/share_protocol_test.go index 0e9e2864..b1c591d8 100644 --- a/crypto/mta/share_protocol_test.go +++ b/crypto/mta/share_protocol_test.go @@ -39,13 +39,13 @@ func TestShareProtocol(t *testing.T) { NTildej, h1j, h2j, err := keygen.LoadNTildeH1H2FromTestFixture(1) assert.NoError(t, err) - cA, pf, err := AliceInit(pk, a, NTildej, h1j, h2j) + cA, pf, err := AliceInit(tss.EC(), pk, a, NTildej, h1j, h2j) assert.NoError(t, err) - _, cB, betaPrm, pfB, err := BobMid(pk, pf, b, cA, NTildei, h1i, h2i, NTildej, h1j, h2j) + _, cB, betaPrm, pfB, err := BobMid(tss.EC(), pk, pf, b, cA, NTildei, h1i, h2i, NTildej, h1j, h2j) assert.NoError(t, err) - alpha, err := AliceEnd(pk, pfB, h1i, h2i, cA, cB, NTildei, sk) + alpha, err := AliceEnd(tss.EC(), pk, pfB, h1i, h2i, cA, cB, NTildei, sk) assert.NoError(t, err) // expect: alpha = ab + betaPrm @@ -70,15 +70,15 @@ func TestShareProtocolWC(t *testing.T) { NTildej, h1j, h2j, err := keygen.LoadNTildeH1H2FromTestFixture(1) assert.NoError(t, err) - cA, pf, err := AliceInit(pk, a, NTildej, h1j, h2j) + cA, pf, err := AliceInit(tss.EC(), pk, a, NTildej, h1j, h2j) assert.NoError(t, err) gBPoint, err := crypto.NewECPoint(tss.EC(), gBX, gBY) assert.NoError(t, err) - _, cB, betaPrm, pfB, err := BobMidWC(pk, pf, b, cA, NTildei, h1i, h2i, NTildej, h1j, h2j, gBPoint) + _, cB, betaPrm, pfB, err := BobMidWC(tss.EC(), pk, pf, b, cA, NTildei, h1i, h2i, NTildej, h1j, h2j, gBPoint) assert.NoError(t, err) - alpha, err := AliceEndWC(pk, pfB, gBPoint, cA, cB, NTildei, h1i, h2i, sk) + alpha, err := AliceEndWC(tss.EC(), pk, pfB, gBPoint, cA, cB, NTildei, h1i, h2i, sk) assert.NoError(t, err) // expect: alpha = ab + betaPrm diff --git a/crypto/schnorr/schnorr_proof.go b/crypto/schnorr/schnorr_proof.go index f92c5f81..a3cfa83f 100644 --- a/crypto/schnorr/schnorr_proof.go +++ b/crypto/schnorr/schnorr_proof.go @@ -12,7 +12,6 @@ import ( "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/tss" ) type ( @@ -32,12 +31,13 @@ func NewZKProof(x *big.Int, X *crypto.ECPoint) (*ZKProof, error) { if x == nil || X == nil || !X.ValidateBasic() { return nil, errors.New("ZKProof constructor received nil or invalid value(s)") } - ecParams := tss.EC().Params() + ec := X.Curve() + ecParams := ec.Params() q := ecParams.N - g := crypto.NewECPointNoCurveCheck(tss.EC(), ecParams.Gx, ecParams.Gy) // already on the curve. + g := crypto.NewECPointNoCurveCheck(ec, ecParams.Gx, ecParams.Gy) // already on the curve. a := common.GetRandomPositiveInt(q) - alpha := crypto.ScalarBaseMult(tss.EC(), a) + alpha := crypto.ScalarBaseMult(ec, a) var c *big.Int { @@ -55,16 +55,17 @@ func (pf *ZKProof) Verify(X *crypto.ECPoint) bool { if pf == nil || !pf.ValidateBasic() { return false } - ecParams := tss.EC().Params() + ec := X.Curve() + ecParams := ec.Params() q := ecParams.N - g := crypto.NewECPointNoCurveCheck(tss.EC(), ecParams.Gx, ecParams.Gy) + g := crypto.NewECPointNoCurveCheck(ec, ecParams.Gx, ecParams.Gy) var c *big.Int { cHash := common.SHA512_256i(X.X(), X.Y(), g.X(), g.Y(), pf.Alpha.X(), pf.Alpha.Y()) c = common.RejectionSample(q, cHash) } - tG := crypto.ScalarBaseMult(tss.EC(), pf.T) + tG := crypto.ScalarBaseMult(ec, pf.T) Xc := X.ScalarMult(c) aXc, err := pf.Alpha.Add(Xc) if err != nil { @@ -82,13 +83,14 @@ func NewZKVProof(V, R *crypto.ECPoint, s, l *big.Int) (*ZKVProof, error) { if V == nil || R == nil || s == nil || l == nil || !V.ValidateBasic() || !R.ValidateBasic() { return nil, errors.New("ZKVProof constructor received nil value(s)") } - ecParams := tss.EC().Params() + ec := V.Curve() + ecParams := ec.Params() q := ecParams.N - g := crypto.NewECPointNoCurveCheck(tss.EC(), ecParams.Gx, ecParams.Gy) + g := crypto.NewECPointNoCurveCheck(ec, ecParams.Gx, ecParams.Gy) a, b := common.GetRandomPositiveInt(q), common.GetRandomPositiveInt(q) aR := R.ScalarMult(a) - bG := crypto.ScalarBaseMult(tss.EC(), b) + bG := crypto.ScalarBaseMult(ec, b) alpha, _ := aR.Add(bG) // already on the curve. var c *big.Int @@ -107,9 +109,10 @@ func (pf *ZKVProof) Verify(V, R *crypto.ECPoint) bool { if pf == nil || !pf.ValidateBasic() { return false } - ecParams := tss.EC().Params() + ec := V.Curve() + ecParams := ec.Params() q := ecParams.N - g := crypto.NewECPointNoCurveCheck(tss.EC(), ecParams.Gx, ecParams.Gy) + g := crypto.NewECPointNoCurveCheck(ec, ecParams.Gx, ecParams.Gy) var c *big.Int { @@ -117,7 +120,7 @@ func (pf *ZKVProof) Verify(V, R *crypto.ECPoint) bool { c = common.RejectionSample(q, cHash) } tR := R.ScalarMult(pf.T) - uG := crypto.ScalarBaseMult(tss.EC(), pf.U) + uG := crypto.ScalarBaseMult(ec, pf.U) tRuG, _ := tR.Add(uG) // already on the curve. Vc := V.ScalarMult(c) diff --git a/crypto/vss/feldman_vss.go b/crypto/vss/feldman_vss.go index 1262fd1b..f556bc9b 100644 --- a/crypto/vss/feldman_vss.go +++ b/crypto/vss/feldman_vss.go @@ -11,13 +11,13 @@ package vss import ( + "crypto/elliptic" "errors" "fmt" "math/big" "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/tss" ) type ( @@ -42,7 +42,7 @@ var ( // Returns a new array of secret shares created by Shamir's Secret Sharing Algorithm, // requiring a minimum number of shares to recreate, of length shares, from the input secret // -func Create(threshold int, secret *big.Int, indexes []*big.Int) (Vs, Shares, error) { +func Create(ec elliptic.Curve, threshold int, secret *big.Int, indexes []*big.Int) (Vs, Shares, error) { if secret == nil || indexes == nil { return nil, nil, fmt.Errorf("vss secret or indexes == nil: %v %v", secret, indexes) } @@ -54,11 +54,11 @@ func Create(threshold int, secret *big.Int, indexes []*big.Int) (Vs, Shares, err return nil, nil, ErrNumSharesBelowThreshold } - poly := samplePolynomial(threshold, secret) + poly := samplePolynomial(ec, threshold, secret) poly[0] = secret // becomes sigma*G in v v := make(Vs, len(poly)) for i, ai := range poly { - v[i] = crypto.ScalarBaseMult(tss.EC(), ai) + v[i] = crypto.ScalarBaseMult(ec, ai) } shares := make(Shares, num) @@ -66,38 +66,38 @@ func Create(threshold int, secret *big.Int, indexes []*big.Int) (Vs, Shares, err if indexes[i].Cmp(big.NewInt(0)) == 0 { return nil, nil, fmt.Errorf("party index should not be 0") } - share := evaluatePolynomial(threshold, poly, indexes[i]) + share := evaluatePolynomial(ec, threshold, poly, indexes[i]) shares[i] = &Share{Threshold: threshold, ID: indexes[i], Share: share} } return v, shares, nil } -func (share *Share) Verify(threshold int, vs Vs) bool { +func (share *Share) Verify(ec elliptic.Curve, threshold int, vs Vs) bool { if share.Threshold != threshold || vs == nil { return false } var err error - modQ := common.ModInt(tss.EC().Params().N) + modQ := common.ModInt(ec.Params().N) v, t := vs[0], one // YRO : we need to have our accumulator outside of the loop for j := 1; j <= threshold; j++ { // t = k_i^j t = modQ.Mul(t, share.ID) // v = v * v_j^t - vjt := vs[j].SetCurve(tss.EC()).ScalarMult(t) - v, err = v.SetCurve(tss.EC()).Add(vjt) + vjt := vs[j].SetCurve(ec).ScalarMult(t) + v, err = v.SetCurve(ec).Add(vjt) if err != nil { return false } } - sigmaGi := crypto.ScalarBaseMult(tss.EC(), share.Share) + sigmaGi := crypto.ScalarBaseMult(ec, share.Share) return sigmaGi.Equals(v) } -func (shares Shares) ReConstruct() (secret *big.Int, err error) { +func (shares Shares) ReConstruct(ec elliptic.Curve) (secret *big.Int, err error) { if shares != nil && shares[0].Threshold > len(shares) { return nil, ErrNumSharesBelowThreshold } - modN := common.ModInt(tss.EC().Params().N) + modN := common.ModInt(ec.Params().N) // x coords xs := make([]*big.Int, 0) @@ -125,8 +125,8 @@ func (shares Shares) ReConstruct() (secret *big.Int, err error) { return secret, nil } -func samplePolynomial(threshold int, secret *big.Int) []*big.Int { - q := tss.EC().Params().N +func samplePolynomial(ec elliptic.Curve, threshold int, secret *big.Int) []*big.Int { + q := ec.Params().N v := make([]*big.Int, threshold+1) v[0] = secret for i := 1; i <= threshold; i++ { @@ -140,8 +140,8 @@ func samplePolynomial(threshold int, secret *big.Int) []*big.Int { // evaluatePolynomial([a, b, c, d], x): // returns a + bx + cx^2 + dx^3 // -func evaluatePolynomial(threshold int, v []*big.Int, id *big.Int) (result *big.Int) { - q := tss.EC().Params().N +func evaluatePolynomial(ec elliptic.Curve, threshold int, v []*big.Int, id *big.Int) (result *big.Int) { + q := ec.Params().N modQ := common.ModInt(q) result = new(big.Int).Set(v[0]) X := big.NewInt(int64(1)) diff --git a/crypto/vss/feldman_vss_test.go b/crypto/vss/feldman_vss_test.go index ac5e736b..b971ff40 100644 --- a/crypto/vss/feldman_vss_test.go +++ b/crypto/vss/feldman_vss_test.go @@ -27,7 +27,7 @@ func TestCreate(t *testing.T) { ids = append(ids, common.GetRandomPositiveInt(tss.EC().Params().N)) } - vs, _, err := Create(threshold, secret, ids) + vs, _, err := Create(tss.EC(), threshold, secret, ids) assert.Nil(t, err) assert.Equal(t, threshold+1, len(vs)) @@ -55,11 +55,11 @@ func TestVerify(t *testing.T) { ids = append(ids, common.GetRandomPositiveInt(tss.EC().Params().N)) } - vs, shares, err := Create(threshold, secret, ids) + vs, shares, err := Create(tss.EC(), threshold, secret, ids) assert.NoError(t, err) for i := 0; i < num; i++ { - assert.True(t, shares[i].Verify(threshold, vs)) + assert.True(t, shares[i].Verify(tss.EC(), threshold, vs)) } } @@ -73,18 +73,18 @@ func TestReconstruct(t *testing.T) { ids = append(ids, common.GetRandomPositiveInt(tss.EC().Params().N)) } - _, shares, err := Create(threshold, secret, ids) + _, shares, err := Create(tss.EC(), threshold, secret, ids) assert.NoError(t, err) - secret2, err2 := shares[:threshold-1].ReConstruct() + secret2, err2 := shares[:threshold-1].ReConstruct(tss.EC()) assert.Error(t, err2) // not enough shares to satisfy the threshold assert.Nil(t, secret2) - secret3, err3 := shares[:threshold].ReConstruct() + secret3, err3 := shares[:threshold].ReConstruct(tss.EC()) assert.NoError(t, err3) assert.NotZero(t, secret3) - secret4, err4 := shares[:num].ReConstruct() + secret4, err4 := shares[:num].ReConstruct(tss.EC()) assert.NoError(t, err4) assert.NotZero(t, secret4) } diff --git a/ecdsa/keygen/ecdsa-keygen.pb.go b/ecdsa/keygen/ecdsa-keygen.pb.go index e65faeae..d8f82625 100644 --- a/ecdsa/keygen/ecdsa-keygen.pb.go +++ b/ecdsa/keygen/ecdsa-keygen.pb.go @@ -1,12 +1,19 @@ +// Copyright © 2019-2020 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. -// source: protob/ecdsa-keygen.proto +// source: ecdsa-keygen.proto package keygen import ( fmt "fmt" - proto "github.com/golang/protobuf/proto" math "math" + + proto "github.com/golang/protobuf/proto" ) // Reference imports to suppress errors if they are not otherwise used. @@ -39,7 +46,7 @@ func (m *KGRound1Message) Reset() { *m = KGRound1Message{} } func (m *KGRound1Message) String() string { return proto.CompactTextString(m) } func (*KGRound1Message) ProtoMessage() {} func (*KGRound1Message) Descriptor() ([]byte, []int) { - return fileDescriptor_1a2e19e981cdbb01, []int{0} + return fileDescriptor_b9942204cc0c4f82, []int{0} } func (m *KGRound1Message) XXX_Unmarshal(b []byte) error { @@ -122,7 +129,7 @@ func (m *KGRound2Message1) Reset() { *m = KGRound2Message1{} } func (m *KGRound2Message1) String() string { return proto.CompactTextString(m) } func (*KGRound2Message1) ProtoMessage() {} func (*KGRound2Message1) Descriptor() ([]byte, []int) { - return fileDescriptor_1a2e19e981cdbb01, []int{1} + return fileDescriptor_b9942204cc0c4f82, []int{1} } func (m *KGRound2Message1) XXX_Unmarshal(b []byte) error { @@ -163,7 +170,7 @@ func (m *KGRound2Message2) Reset() { *m = KGRound2Message2{} } func (m *KGRound2Message2) String() string { return proto.CompactTextString(m) } func (*KGRound2Message2) ProtoMessage() {} func (*KGRound2Message2) Descriptor() ([]byte, []int) { - return fileDescriptor_1a2e19e981cdbb01, []int{2} + return fileDescriptor_b9942204cc0c4f82, []int{2} } func (m *KGRound2Message2) XXX_Unmarshal(b []byte) error { @@ -204,7 +211,7 @@ func (m *KGRound3Message) Reset() { *m = KGRound3Message{} } func (m *KGRound3Message) String() string { return proto.CompactTextString(m) } func (*KGRound3Message) ProtoMessage() {} func (*KGRound3Message) Descriptor() ([]byte, []int) { - return fileDescriptor_1a2e19e981cdbb01, []int{3} + return fileDescriptor_b9942204cc0c4f82, []int{3} } func (m *KGRound3Message) XXX_Unmarshal(b []byte) error { @@ -233,31 +240,32 @@ func (m *KGRound3Message) GetPaillierProof() [][]byte { } func init() { - proto.RegisterType((*KGRound1Message)(nil), "KGRound1Message") - proto.RegisterType((*KGRound2Message1)(nil), "KGRound2Message1") - proto.RegisterType((*KGRound2Message2)(nil), "KGRound2Message2") - proto.RegisterType((*KGRound3Message)(nil), "KGRound3Message") -} - -func init() { proto.RegisterFile("protob/ecdsa-keygen.proto", fileDescriptor_1a2e19e981cdbb01) } - -var fileDescriptor_1a2e19e981cdbb01 = []byte{ - // 263 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x90, 0x41, 0x4b, 0xc3, 0x40, - 0x10, 0x85, 0x49, 0x6a, 0x53, 0x1c, 0xd2, 0x28, 0x8b, 0xe0, 0x7a, 0x50, 0x4a, 0x44, 0xe8, 0x45, - 0xcb, 0x6e, 0x0f, 0x7a, 0xd6, 0x83, 0x07, 0x51, 0xa4, 0x78, 0xf2, 0x12, 0xd2, 0xee, 0xd8, 0x04, - 0x93, 0xdd, 0x90, 0xc4, 0x83, 0xbf, 0xd0, 0xbf, 0x25, 0x3b, 0xd9, 0x04, 0x83, 0xc7, 0xf7, 0xbd, - 0x64, 0xd8, 0xf7, 0xc1, 0x59, 0x55, 0x9b, 0xd6, 0x6c, 0x57, 0xb8, 0x53, 0x4d, 0x7a, 0xfd, 0x89, - 0xdf, 0x7b, 0xd4, 0x37, 0xc4, 0xe2, 0x1f, 0x0f, 0x8e, 0x9e, 0x1e, 0x37, 0xe6, 0x4b, 0x2b, 0xf1, - 0x8c, 0x4d, 0x93, 0xee, 0x91, 0x5d, 0x00, 0xec, 0x4c, 0x59, 0xe6, 0x6d, 0x89, 0xba, 0xe5, 0xde, - 0xc2, 0x5b, 0x86, 0x9b, 0x3f, 0x84, 0x9d, 0x03, 0x54, 0x69, 0x5e, 0x14, 0x39, 0xd6, 0x89, 0xe6, - 0x3e, 0xf5, 0x87, 0x3d, 0x79, 0x61, 0xa7, 0x30, 0xd3, 0x49, 0x9b, 0x17, 0x0a, 0xf9, 0x84, 0xba, - 0x40, 0xbf, 0xd9, 0xc4, 0x22, 0xf0, 0x33, 0xc1, 0x0f, 0x88, 0xf9, 0x99, 0xa0, 0x2c, 0xf9, 0xd4, - 0x65, 0x69, 0xef, 0xaa, 0x42, 0x57, 0xb5, 0x31, 0x1f, 0x89, 0xe0, 0xc1, 0x62, 0x62, 0xef, 0xf6, - 0x44, 0x8c, 0x6a, 0xc9, 0x67, 0xe3, 0x5a, 0xc6, 0x4b, 0x38, 0x76, 0x43, 0xa4, 0x1b, 0x22, 0xd8, - 0x09, 0x4c, 0x9b, 0x2c, 0xad, 0xd1, 0x8d, 0xe8, 0x42, 0x7c, 0xfb, 0xef, 0x4b, 0xc9, 0x2e, 0x61, - 0xae, 0x30, 0x19, 0xcd, 0xb6, 0xf7, 0x43, 0x85, 0x0f, 0x03, 0x8b, 0xef, 0x06, 0x57, 0xeb, 0xde, - 0xd5, 0x15, 0x44, 0x83, 0x0b, 0x7a, 0x88, 0xfb, 0x71, 0xde, 0xd3, 0x57, 0x0b, 0xef, 0xa3, 0xf7, - 0x90, 0xe4, 0xaf, 0x3a, 0xf9, 0xdb, 0x80, 0xec, 0xaf, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xe9, - 0x13, 0x63, 0x79, 0x9a, 0x01, 0x00, 0x00, + proto.RegisterType((*KGRound1Message)(nil), "binance.tsslib.ecdsa.keygen.KGRound1Message") + proto.RegisterType((*KGRound2Message1)(nil), "binance.tsslib.ecdsa.keygen.KGRound2Message1") + proto.RegisterType((*KGRound2Message2)(nil), "binance.tsslib.ecdsa.keygen.KGRound2Message2") + proto.RegisterType((*KGRound3Message)(nil), "binance.tsslib.ecdsa.keygen.KGRound3Message") +} + +func init() { proto.RegisterFile("ecdsa-keygen.proto", fileDescriptor_b9942204cc0c4f82) } + +var fileDescriptor_b9942204cc0c4f82 = []byte{ + // 277 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x91, 0xc1, 0x4b, 0x84, 0x40, + 0x18, 0xc5, 0x59, 0xb7, 0x75, 0xe9, 0xc3, 0xb5, 0x18, 0x82, 0x06, 0xa2, 0x58, 0x8c, 0x60, 0x2f, + 0x19, 0x33, 0x7b, 0xa8, 0x73, 0x1d, 0x3a, 0x44, 0x11, 0x4b, 0xa7, 0x2e, 0xa2, 0xce, 0xd7, 0x3a, + 0xa4, 0x33, 0xe2, 0xd8, 0xa1, 0xbf, 0xb0, 0x7f, 0x2b, 0x1c, 0x47, 0x49, 0x3a, 0xbe, 0xdf, 0xfb, + 0x7c, 0xf8, 0xde, 0x00, 0xc1, 0x5c, 0x98, 0xf4, 0xfa, 0x13, 0xbf, 0xf7, 0xa8, 0xe2, 0xba, 0xd1, + 0xad, 0x26, 0x67, 0x99, 0x54, 0xa9, 0xca, 0x31, 0x6e, 0x8d, 0x29, 0x65, 0x16, 0xdb, 0x93, 0xb8, + 0x3f, 0x89, 0x7e, 0x66, 0x70, 0xf4, 0xf4, 0xb8, 0xd3, 0x5f, 0x4a, 0xb0, 0x67, 0x34, 0x26, 0xdd, + 0x23, 0xb9, 0x00, 0xc8, 0x75, 0x55, 0xc9, 0xb6, 0x42, 0xd5, 0xd2, 0xd9, 0x7a, 0xb6, 0x09, 0x76, + 0x7f, 0x08, 0x39, 0x07, 0xa8, 0x53, 0x59, 0x96, 0x12, 0x9b, 0x44, 0x51, 0xcf, 0xfa, 0x87, 0x03, + 0x79, 0x21, 0xa7, 0xb0, 0x54, 0x49, 0x2b, 0x4b, 0x81, 0x74, 0x6e, 0x3d, 0x5f, 0xbd, 0x75, 0x8a, + 0x84, 0xe0, 0x15, 0x8c, 0x1e, 0x58, 0xe6, 0x15, 0xcc, 0x6a, 0x4e, 0x17, 0x4e, 0xf3, 0x2e, 0x57, + 0x94, 0xaa, 0x6e, 0xb4, 0xfe, 0x48, 0x18, 0xf5, 0xd7, 0xf3, 0x2e, 0x77, 0x20, 0x6c, 0x62, 0x73, + 0xba, 0x9c, 0xda, 0x3c, 0xda, 0xc0, 0xb1, 0x2b, 0xc2, 0x5d, 0x11, 0x46, 0x4e, 0x60, 0x61, 0x8a, + 0xb4, 0x41, 0x57, 0xa2, 0x17, 0xd1, 0xed, 0xbf, 0x4b, 0x4e, 0x2e, 0x61, 0x25, 0x30, 0x99, 0xd4, + 0xee, 0xf2, 0x03, 0x81, 0x0f, 0x23, 0x8b, 0xee, 0xc6, 0xad, 0xb6, 0xc3, 0x56, 0x57, 0x10, 0x8e, + 0x5b, 0xd8, 0x1f, 0x71, 0x1f, 0xae, 0x06, 0xfa, 0xda, 0xc1, 0xfb, 0xf0, 0x3d, 0xb0, 0xb3, 0xdf, + 0xf4, 0xb3, 0x67, 0xbe, 0x7d, 0x9a, 0xed, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x1d, 0xf7, 0xd8, + 0xfe, 0xb0, 0x01, 0x00, 0x00, } diff --git a/ecdsa/keygen/local_party_test.go b/ecdsa/keygen/local_party_test.go index 517ae451..f61636b9 100644 --- a/ecdsa/keygen/local_party_test.go +++ b/ecdsa/keygen/local_party_test.go @@ -46,7 +46,7 @@ func TestStartRound1Paillier(t *testing.T) { pIDs := tss.GenerateTestPartyIDs(1) p2pCtx := tss.NewPeerContext(pIDs) threshold := 1 - params := tss.NewParameters(p2pCtx, pIDs[0], len(pIDs), threshold) + params := tss.NewParameters(tss.EC(), p2pCtx, pIDs[0], len(pIDs), threshold) fixtures, pIDs, err := LoadKeygenTestFixtures(testParticipants) if err != nil { @@ -86,7 +86,7 @@ func TestFinishAndSaveH1H2(t *testing.T) { pIDs := tss.GenerateTestPartyIDs(1) p2pCtx := tss.NewPeerContext(pIDs) threshold := 1 - params := tss.NewParameters(p2pCtx, pIDs[0], len(pIDs), threshold) + params := tss.NewParameters(tss.EC(), p2pCtx, pIDs[0], len(pIDs), threshold) fixtures, pIDs, err := LoadKeygenTestFixtures(testParticipants) if err != nil { @@ -133,7 +133,7 @@ func TestBadMessageCulprits(t *testing.T) { pIDs := tss.GenerateTestPartyIDs(2) p2pCtx := tss.NewPeerContext(pIDs) - params := tss.NewParameters(p2pCtx, pIDs[0], len(pIDs), 1) + params := tss.NewParameters(tss.S256(), p2pCtx, pIDs[0], len(pIDs), 1) fixtures, pIDs, err := LoadKeygenTestFixtures(testParticipants) if err != nil { @@ -162,7 +162,7 @@ func TestBadMessageCulprits(t *testing.T) { assert.Equal(t, 1, len(err2.Culprits())) assert.Equal(t, pIDs[1], err2.Culprits()[0]) assert.Equal(t, - "task ecdsa-keygen, party {0,P[1]}, round 1, culprits [{1,2}]: message failed ValidateBasic: Type: binance.tss-lib.ecdsa.keygen.KGRound1Message, From: {1,2}, To: all", + "task ecdsa-keygen, party {0,P[1]}, round 1, culprits [{1,2}]: message failed ValidateBasic: Type: binance.tsslib.ecdsa.keygen.KGRound1Message, From: {1,2}, To: all", err2.Error()) } @@ -192,7 +192,7 @@ func TestE2EConcurrentAndSaveFixtures(t *testing.T) { // init the parties for i := 0; i < len(pIDs); i++ { var P *LocalParty - params := tss.NewParameters(p2pCtx, pIDs[i], len(pIDs), threshold) + params := tss.NewParameters(tss.S256(), p2pCtx, pIDs[i], len(pIDs), threshold) if i < len(fixtures) { P = NewLocalParty(params, outCh, endCh, fixtures[i].LocalPreParams).(*LocalParty) } else { @@ -262,7 +262,7 @@ keygen: } pShares = append(pShares, shareStruct) } - uj, err := pShares[:threshold+1].ReConstruct() + uj, err := pShares[:threshold+1].ReConstruct(tss.S256()) assert.NoError(t, err, "vss.ReConstruct should not throw error") // uG test: u*G[j] == V[0] @@ -280,7 +280,7 @@ keygen: { badShares := pShares[:threshold] badShares[len(badShares)-1].Share.Set(big.NewInt(0)) - uj, err := pShares[:threshold].ReConstruct() + uj, err := pShares[:threshold].ReConstruct(tss.S256()) assert.NoError(t, err) assert.NotEqual(t, parties[j].temp.ui, uj) BigXjX, BigXjY := tss.EC().ScalarBaseMult(uj.Bytes()) diff --git a/ecdsa/keygen/messages.go b/ecdsa/keygen/messages.go index 17296ca1..fbebe2ac 100644 --- a/ecdsa/keygen/messages.go +++ b/ecdsa/keygen/messages.go @@ -9,8 +9,6 @@ package keygen import ( "math/big" - "github.com/golang/protobuf/proto" - "github.com/binance-chain/tss-lib/common" cmt "github.com/binance-chain/tss-lib/crypto/commitments" "github.com/binance-chain/tss-lib/crypto/dlnproof" @@ -32,13 +30,6 @@ var ( } ) -func init() { - proto.RegisterType((*KGRound1Message)(nil), tss.ECDSAProtoNamePrefix+"keygen.KGRound1Message") - proto.RegisterType((*KGRound2Message1)(nil), tss.ECDSAProtoNamePrefix+"keygen.KGRound2Message1") - proto.RegisterType((*KGRound2Message2)(nil), tss.ECDSAProtoNamePrefix+"keygen.KGRound2Message2") - proto.RegisterType((*KGRound3Message)(nil), tss.ECDSAProtoNamePrefix+"keygen.KGRound3Message") -} - // ----- // func NewKGRound1Message( diff --git a/ecdsa/keygen/round_1.go b/ecdsa/keygen/round_1.go index 16d596f1..3bc83c5e 100644 --- a/ecdsa/keygen/round_1.go +++ b/ecdsa/keygen/round_1.go @@ -40,13 +40,13 @@ func (round *round1) Start() *tss.Error { i := Pi.Index // 1. calculate "partial" key share ui - ui := common.GetRandomPositiveInt(tss.EC().Params().N) + ui := common.GetRandomPositiveInt(round.Params().EC().Params().N) round.temp.ui = ui // 2. compute the vss shares ids := round.Parties().IDs().Keys() - vs, shares, err := vss.Create(round.Threshold(), ui, ids) + vs, shares, err := vss.Create(round.Params().EC(), round.Threshold(), ui, ids) if err != nil { return round.WrapError(err, Pi) } diff --git a/ecdsa/keygen/round_3.go b/ecdsa/keygen/round_3.go index c7b89ac7..d03b50cd 100644 --- a/ecdsa/keygen/round_3.go +++ b/ecdsa/keygen/round_3.go @@ -41,7 +41,7 @@ func (round *round3) Start() *tss.Error { share := r2msg1.UnmarshalShare() xi = new(big.Int).Add(xi, share) } - round.save.Xi = new(big.Int).Mod(xi, tss.EC().Params().N) + round.save.Xi = new(big.Int).Mod(xi, round.Params().EC().Params().N) // 2-3. Vc := make(vss.Vs, round.Threshold()+1) @@ -77,7 +77,7 @@ func (round *round3) Start() *tss.Error { ch <- vssOut{errors.New("de-commitment verify failed"), nil} return } - PjVs, err := crypto.UnFlattenECPoints(tss.EC(), flatPolyGs) + PjVs, err := crypto.UnFlattenECPoints(round.Params().EC(), flatPolyGs) if err != nil { ch <- vssOut{err, nil} return @@ -88,7 +88,7 @@ func (round *round3) Start() *tss.Error { ID: round.PartyID().KeyInt(), Share: r2msg1.UnmarshalShare(), } - if ok = PjShare.Verify(round.Threshold(), PjVs); !ok { + if ok = PjShare.Verify(round.Params().EC(), round.Threshold(), PjVs); !ok { ch <- vssOut{errors.New("vss verify failed"), nil} return } @@ -146,7 +146,7 @@ func (round *round3) Start() *tss.Error { // 12-16. compute Xj for each Pj { var err error - modQ := common.ModInt(tss.EC().Params().N) + modQ := common.ModInt(round.Params().EC().Params().N) culprits := make([]*tss.PartyID, 0, len(Ps)) // who caused the error(s) bigXj := round.save.BigXj for j := 0; j < round.PartyCount(); j++ { @@ -170,7 +170,7 @@ func (round *round3) Start() *tss.Error { } // 17. compute and SAVE the ECDSA public key `y` - ecdsaPubKey, err := crypto.NewECPoint(tss.EC(), Vc[0].X(), Vc[0].Y()) + ecdsaPubKey, err := crypto.NewECPoint(round.Params().EC(), Vc[0].X(), Vc[0].Y()) if err != nil { return round.WrapError(errors2.Wrapf(err, "public key is not on the curve")) } diff --git a/ecdsa/keygen/test_utils.go b/ecdsa/keygen/test_utils.go index c90b4472..27d30fec 100644 --- a/ecdsa/keygen/test_utils.go +++ b/ecdsa/keygen/test_utils.go @@ -53,6 +53,10 @@ func LoadKeygenTestFixtures(qty int, optionalStart ...int) ([]LocalPartySaveData "could not unmarshal fixture data for party %d located at: %s", i, fixtureFilePath) } + for _, kbxj := range key.BigXj { + kbxj.SetCurve(tss.S256()) + } + key.ECDSAPub.SetCurve(tss.S256()) keys = append(keys, key) } partyIDs := make(tss.UnSortedPartyIDs, len(keys)) @@ -87,6 +91,10 @@ func LoadKeygenTestFixturesRandomSet(qty, fixtureCount int) ([]LocalPartySaveDat "could not unmarshal fixture data for party %d located at: %s", i, fixtureFilePath) } + for _, kbxj := range key.BigXj { + kbxj.SetCurve(tss.S256()) + } + key.ECDSAPub.SetCurve(tss.S256()) keys = append(keys, key) } partyIDs := make(tss.UnSortedPartyIDs, len(keys)) diff --git a/ecdsa/resharing/ecdsa-resharing.pb.go b/ecdsa/resharing/ecdsa-resharing.pb.go index 30b49d35..594f96cb 100644 --- a/ecdsa/resharing/ecdsa-resharing.pb.go +++ b/ecdsa/resharing/ecdsa-resharing.pb.go @@ -1,12 +1,19 @@ +// Copyright © 2019-2020 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. -// source: protob/ecdsa-resharing.proto +// source: ecdsa-resharing.proto package resharing import ( fmt "fmt" - proto "github.com/golang/protobuf/proto" math "math" + + proto "github.com/golang/protobuf/proto" ) // Reference imports to suppress errors if they are not otherwise used. @@ -35,7 +42,7 @@ func (m *DGRound1Message) Reset() { *m = DGRound1Message{} } func (m *DGRound1Message) String() string { return proto.CompactTextString(m) } func (*DGRound1Message) ProtoMessage() {} func (*DGRound1Message) Descriptor() ([]byte, []int) { - return fileDescriptor_f7d3ae1dc68dc295, []int{0} + return fileDescriptor_cb0d21b734b9b1ac, []int{0} } func (m *DGRound1Message) XXX_Unmarshal(b []byte) error { @@ -96,7 +103,7 @@ func (m *DGRound2Message1) Reset() { *m = DGRound2Message1{} } func (m *DGRound2Message1) String() string { return proto.CompactTextString(m) } func (*DGRound2Message1) ProtoMessage() {} func (*DGRound2Message1) Descriptor() ([]byte, []int) { - return fileDescriptor_f7d3ae1dc68dc295, []int{1} + return fileDescriptor_cb0d21b734b9b1ac, []int{1} } func (m *DGRound2Message1) XXX_Unmarshal(b []byte) error { @@ -178,7 +185,7 @@ func (m *DGRound2Message2) Reset() { *m = DGRound2Message2{} } func (m *DGRound2Message2) String() string { return proto.CompactTextString(m) } func (*DGRound2Message2) ProtoMessage() {} func (*DGRound2Message2) Descriptor() ([]byte, []int) { - return fileDescriptor_f7d3ae1dc68dc295, []int{2} + return fileDescriptor_cb0d21b734b9b1ac, []int{2} } func (m *DGRound2Message2) XXX_Unmarshal(b []byte) error { @@ -212,7 +219,7 @@ func (m *DGRound3Message1) Reset() { *m = DGRound3Message1{} } func (m *DGRound3Message1) String() string { return proto.CompactTextString(m) } func (*DGRound3Message1) ProtoMessage() {} func (*DGRound3Message1) Descriptor() ([]byte, []int) { - return fileDescriptor_f7d3ae1dc68dc295, []int{3} + return fileDescriptor_cb0d21b734b9b1ac, []int{3} } func (m *DGRound3Message1) XXX_Unmarshal(b []byte) error { @@ -253,7 +260,7 @@ func (m *DGRound3Message2) Reset() { *m = DGRound3Message2{} } func (m *DGRound3Message2) String() string { return proto.CompactTextString(m) } func (*DGRound3Message2) ProtoMessage() {} func (*DGRound3Message2) Descriptor() ([]byte, []int) { - return fileDescriptor_f7d3ae1dc68dc295, []int{4} + return fileDescriptor_cb0d21b734b9b1ac, []int{4} } func (m *DGRound3Message2) XXX_Unmarshal(b []byte) error { @@ -293,7 +300,7 @@ func (m *DGRound4Message) Reset() { *m = DGRound4Message{} } func (m *DGRound4Message) String() string { return proto.CompactTextString(m) } func (*DGRound4Message) ProtoMessage() {} func (*DGRound4Message) Descriptor() ([]byte, []int) { - return fileDescriptor_f7d3ae1dc68dc295, []int{5} + return fileDescriptor_cb0d21b734b9b1ac, []int{5} } func (m *DGRound4Message) XXX_Unmarshal(b []byte) error { @@ -315,35 +322,36 @@ func (m *DGRound4Message) XXX_DiscardUnknown() { var xxx_messageInfo_DGRound4Message proto.InternalMessageInfo func init() { - proto.RegisterType((*DGRound1Message)(nil), "DGRound1Message") - proto.RegisterType((*DGRound2Message1)(nil), "DGRound2Message1") - proto.RegisterType((*DGRound2Message2)(nil), "DGRound2Message2") - proto.RegisterType((*DGRound3Message1)(nil), "DGRound3Message1") - proto.RegisterType((*DGRound3Message2)(nil), "DGRound3Message2") - proto.RegisterType((*DGRound4Message)(nil), "DGRound4Message") -} - -func init() { proto.RegisterFile("protob/ecdsa-resharing.proto", fileDescriptor_f7d3ae1dc68dc295) } - -var fileDescriptor_f7d3ae1dc68dc295 = []byte{ - // 303 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x91, 0xcf, 0x4b, 0xc3, 0x30, - 0x1c, 0xc5, 0x69, 0xe7, 0x3a, 0x96, 0xd5, 0xcd, 0x05, 0xc1, 0x1c, 0x54, 0x66, 0x40, 0xe8, 0x45, - 0x47, 0x32, 0x2f, 0x5e, 0x75, 0xe0, 0x49, 0x19, 0xc5, 0x83, 0x7a, 0x09, 0xed, 0x1a, 0xd7, 0x42, - 0x9b, 0x94, 0xfe, 0x42, 0xff, 0x4a, 0xff, 0x25, 0x69, 0x96, 0x86, 0x95, 0x1d, 0xdf, 0xe7, 0x7d, - 0x9b, 0xc7, 0xeb, 0x03, 0x97, 0x79, 0x21, 0x2b, 0x19, 0x2e, 0xf9, 0x36, 0x2a, 0x83, 0xbb, 0x82, - 0x97, 0x71, 0x50, 0x24, 0x62, 0x77, 0xaf, 0x30, 0xae, 0xc0, 0x6c, 0xfd, 0xe2, 0xcb, 0x5a, 0x44, - 0xe4, 0x95, 0x97, 0x65, 0xb0, 0xe3, 0xf0, 0x1a, 0x4c, 0xd4, 0x2d, 0xcb, 0xeb, 0x90, 0xfd, 0x20, - 0x6b, 0x61, 0x79, 0xae, 0x3f, 0x56, 0x68, 0x53, 0x87, 0x1f, 0x7d, 0xff, 0x17, 0xd9, 0x7d, 0xff, - 0x13, 0xde, 0x00, 0xb7, 0x61, 0x5b, 0x99, 0x65, 0x49, 0x95, 0x71, 0x51, 0xa1, 0x81, 0x3a, 0x98, - 0x34, 0xcf, 0x06, 0xe1, 0x3f, 0x0b, 0x9c, 0xe9, 0x58, 0xaa, 0x63, 0x09, 0xbc, 0x02, 0x20, 0x0f, - 0x92, 0x34, 0x4d, 0x78, 0xc1, 0x44, 0x17, 0xdb, 0x91, 0x37, 0x78, 0x0b, 0xa6, 0xc6, 0xce, 0x0b, - 0x29, 0xbf, 0x91, 0xbd, 0x18, 0x78, 0xae, 0x7f, 0xda, 0xd1, 0x4d, 0x0b, 0xe1, 0x05, 0x18, 0x09, - 0x56, 0x25, 0x69, 0xc4, 0x75, 0xb0, 0x23, 0xde, 0x5b, 0x05, 0xa7, 0xc0, 0x8e, 0x09, 0x3a, 0x51, - 0xcc, 0x8e, 0x89, 0xd2, 0x14, 0x0d, 0xb5, 0xa6, 0x6d, 0x7c, 0x94, 0x0a, 0xf5, 0x32, 0x23, 0xc8, - 0x51, 0x6f, 0x8f, 0x3b, 0x42, 0x7a, 0x36, 0x45, 0xa3, 0xbe, 0x4d, 0x31, 0x3c, 0x2a, 0x44, 0xb1, - 0x67, 0xd8, 0xca, 0x94, 0x3c, 0x07, 0xc3, 0x76, 0x00, 0xae, 0xfb, 0xed, 0x05, 0x7e, 0x3c, 0xba, - 0xa4, 0x6d, 0xdf, 0x86, 0x45, 0xfc, 0xe0, 0x47, 0x5a, 0xfb, 0xbe, 0xcd, 0xfa, 0x00, 0xe2, 0xb9, - 0x19, 0xf0, 0x41, 0x7f, 0xfa, 0x34, 0xff, 0x9a, 0xa9, 0x35, 0x96, 0x66, 0xec, 0xd0, 0x51, 0x6b, - 0xaf, 0xfe, 0x03, 0x00, 0x00, 0xff, 0xff, 0xe8, 0x14, 0x8e, 0x99, 0x0d, 0x02, 0x00, 0x00, + proto.RegisterType((*DGRound1Message)(nil), "binance.tsslib.ecdsa.resharing.DGRound1Message") + proto.RegisterType((*DGRound2Message1)(nil), "binance.tsslib.ecdsa.resharing.DGRound2Message1") + proto.RegisterType((*DGRound2Message2)(nil), "binance.tsslib.ecdsa.resharing.DGRound2Message2") + proto.RegisterType((*DGRound3Message1)(nil), "binance.tsslib.ecdsa.resharing.DGRound3Message1") + proto.RegisterType((*DGRound3Message2)(nil), "binance.tsslib.ecdsa.resharing.DGRound3Message2") + proto.RegisterType((*DGRound4Message)(nil), "binance.tsslib.ecdsa.resharing.DGRound4Message") +} + +func init() { proto.RegisterFile("ecdsa-resharing.proto", fileDescriptor_cb0d21b734b9b1ac) } + +var fileDescriptor_cb0d21b734b9b1ac = []byte{ + // 320 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x92, 0x41, 0x4f, 0xfa, 0x30, + 0x18, 0xc6, 0xb3, 0xf1, 0x07, 0x42, 0xe1, 0x0f, 0xd2, 0x68, 0xec, 0x45, 0x82, 0x4d, 0x4c, 0xb8, + 0x38, 0xd3, 0xe2, 0xc5, 0xab, 0x92, 0x78, 0xd2, 0x10, 0xe2, 0x41, 0xbd, 0x34, 0x1b, 0xab, 0xd0, + 0x64, 0xb4, 0xcb, 0x5a, 0x16, 0xfd, 0x94, 0x7e, 0x25, 0xb3, 0xd2, 0x35, 0x2c, 0x1c, 0xdf, 0xdf, + 0xf3, 0xac, 0x4f, 0x9e, 0xf7, 0x1d, 0xb8, 0xe0, 0xeb, 0x54, 0xc7, 0xb7, 0x05, 0xd7, 0xdb, 0xb8, + 0x10, 0x72, 0x13, 0xe5, 0x85, 0x32, 0x0a, 0x4e, 0x12, 0x21, 0x63, 0xb9, 0xe6, 0x91, 0xd1, 0x3a, + 0x13, 0x49, 0x64, 0x5d, 0x91, 0x77, 0x61, 0x03, 0x46, 0x8b, 0xe7, 0x95, 0xda, 0xcb, 0x94, 0xbc, + 0x70, 0xad, 0xe3, 0x0d, 0x87, 0x13, 0xd0, 0xb7, 0x2e, 0x96, 0xef, 0x13, 0xf6, 0x8d, 0x82, 0x69, + 0x30, 0x1b, 0xac, 0x7a, 0x16, 0x2d, 0xf7, 0xc9, 0x7b, 0x53, 0xff, 0x41, 0x61, 0x53, 0xff, 0x80, + 0xd7, 0x60, 0x50, 0xb2, 0xb5, 0xda, 0xed, 0x84, 0xd9, 0x71, 0x69, 0x50, 0xcb, 0x1a, 0xfa, 0xe5, + 0x93, 0x47, 0xf8, 0x37, 0x00, 0x67, 0x2e, 0x96, 0xba, 0x58, 0x02, 0xaf, 0x00, 0xc8, 0x63, 0x91, + 0x65, 0x82, 0x17, 0x4c, 0xd6, 0xb1, 0x35, 0x79, 0x85, 0x37, 0x60, 0xe8, 0xe5, 0xbc, 0x50, 0xea, + 0x0b, 0x85, 0xd3, 0xd6, 0x6c, 0xb0, 0xfa, 0x5f, 0xd3, 0x65, 0x05, 0xe1, 0x25, 0xe8, 0x4a, 0x66, + 0x44, 0x96, 0x72, 0x17, 0xdc, 0x91, 0x6f, 0xd5, 0x04, 0x87, 0x20, 0xdc, 0x12, 0xf4, 0xcf, 0xb2, + 0x70, 0x4b, 0xec, 0x4c, 0x51, 0xdb, 0xcd, 0xb4, 0x8a, 0x4f, 0x33, 0x69, 0x5f, 0x66, 0x04, 0x75, + 0xec, 0xdb, 0xbd, 0x9a, 0x90, 0x86, 0x4c, 0x51, 0xb7, 0x29, 0x53, 0x0c, 0x4f, 0x0a, 0x51, 0x3c, + 0xf3, 0x6c, 0xee, 0x4b, 0x9e, 0x83, 0x76, 0xb5, 0x7a, 0xee, 0xfa, 0x1d, 0x06, 0xfc, 0x70, 0xe2, + 0xa4, 0x55, 0xdf, 0x92, 0xa5, 0xfc, 0x68, 0x91, 0xc1, 0xa1, 0x6f, 0xb9, 0x38, 0x82, 0x78, 0xec, + 0x0f, 0x78, 0xef, 0x3e, 0x7d, 0x1c, 0x7f, 0x8e, 0xec, 0x35, 0xee, 0xfc, 0x99, 0x93, 0x8e, 0xfd, + 0x1b, 0xe6, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe8, 0x0f, 0x27, 0x7b, 0x26, 0x02, 0x00, 0x00, } diff --git a/ecdsa/resharing/local_party_test.go b/ecdsa/resharing/local_party_test.go index 35395b41..1b8172a6 100644 --- a/ecdsa/resharing/local_party_test.go +++ b/ecdsa/resharing/local_party_test.go @@ -72,13 +72,13 @@ func TestE2EConcurrent(t *testing.T) { // init the old parties first for j, pID := range oldPIDs { - params := tss.NewReSharingParameters(oldP2PCtx, newP2PCtx, pID, testParticipants, threshold, newPCount, newThreshold) + params := tss.NewReSharingParameters(tss.S256(), oldP2PCtx, newP2PCtx, pID, testParticipants, threshold, newPCount, newThreshold) P := NewLocalParty(params, oldKeys[j], outCh, endCh).(*LocalParty) // discard old key data oldCommittee = append(oldCommittee, P) } // init the new parties for j, pID := range newPIDs { - params := tss.NewReSharingParameters(oldP2PCtx, newP2PCtx, pID, testParticipants, threshold, newPCount, newThreshold) + params := tss.NewReSharingParameters(tss.S256(), oldP2PCtx, newP2PCtx, pID, testParticipants, threshold, newPCount, newThreshold) save := keygen.NewLocalPartySaveData(newPCount) if j < len(fixtures) && len(newPIDs) <= len(fixtures) { save.LocalPreParams = fixtures[j].LocalPreParams @@ -149,7 +149,7 @@ func TestE2EConcurrent(t *testing.T) { for j, key := range newKeys { // xj test: BigXj == xj*G xj := key.Xi - gXj := crypto.ScalarBaseMult(tss.EC(), xj) + gXj := crypto.ScalarBaseMult(tss.S256(), xj) BigXj := key.BigXj[j] assert.True(t, BigXj.Equals(gXj), "ensure BigX_j == g^x_j") } @@ -171,7 +171,7 @@ signing: signEndCh := make(chan common.SignatureData, len(signPIDs)) for j, signPID := range signPIDs { - params := tss.NewParameters(signP2pCtx, signPID, len(signPIDs), newThreshold) + params := tss.NewParameters(tss.S256(), signP2pCtx, signPID, len(signPIDs), newThreshold) P := signing.NewLocalParty(big.NewInt(42), params, signKeys[j], signOutCh, signEndCh).(*signing.LocalParty) signParties = append(signParties, P) go func(P *signing.LocalParty) { @@ -214,7 +214,7 @@ signing: // BEGIN ECDSA verify pkX, pkY := signKeys[0].ECDSAPub.X(), signKeys[0].ECDSAPub.Y() pk := ecdsa.PublicKey{ - Curve: tss.EC(), + Curve: tss.S256(), X: pkX, Y: pkY, } diff --git a/ecdsa/resharing/messages.go b/ecdsa/resharing/messages.go index a04ca154..c8f573a6 100644 --- a/ecdsa/resharing/messages.go +++ b/ecdsa/resharing/messages.go @@ -7,10 +7,9 @@ package resharing import ( + "crypto/elliptic" "math/big" - "github.com/golang/protobuf/proto" - "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" cmt "github.com/binance-chain/tss-lib/crypto/commitments" @@ -33,14 +32,6 @@ var ( } ) -func init() { - proto.RegisterType((*DGRound1Message)(nil), tss.ECDSAProtoNamePrefix+"resharing.DGRound1Message") - proto.RegisterType((*DGRound2Message1)(nil), tss.ECDSAProtoNamePrefix+"resharing.DGRound2Message1") - proto.RegisterType((*DGRound2Message2)(nil), tss.ECDSAProtoNamePrefix+"resharing.DGRound2Message2") - proto.RegisterType((*DGRound3Message1)(nil), tss.ECDSAProtoNamePrefix+"resharing.DGRound3Message1") - proto.RegisterType((*DGRound3Message2)(nil), tss.ECDSAProtoNamePrefix+"resharing.DGRound3Message2") -} - // ----- // func NewDGRound1Message( @@ -71,9 +62,9 @@ func (m *DGRound1Message) ValidateBasic() bool { common.NonEmptyBytes(m.VCommitment) } -func (m *DGRound1Message) UnmarshalECDSAPub() (*crypto.ECPoint, error) { +func (m *DGRound1Message) UnmarshalECDSAPub(ec elliptic.Curve) (*crypto.ECPoint, error) { return crypto.NewECPoint( - tss.EC(), + ec, new(big.Int).SetBytes(m.EcdsaPubX), new(big.Int).SetBytes(m.EcdsaPubY)) } diff --git a/ecdsa/resharing/round_1_old_step_1.go b/ecdsa/resharing/round_1_old_step_1.go index 868c21ff..35cff92a 100644 --- a/ecdsa/resharing/round_1_old_step_1.go +++ b/ecdsa/resharing/round_1_old_step_1.go @@ -47,10 +47,10 @@ func (round *round1) Start() *tss.Error { return round.WrapError(fmt.Errorf("t+1=%d is not satisfied by the key count of %d", round.Threshold()+1, len(ks)), round.PartyID()) } newKs := round.NewParties().IDs().Keys() - wi, _ := signing.PrepareForSigning(i, len(round.OldParties().IDs()), xi, ks, bigXj) + wi, _ := signing.PrepareForSigning(round.Params().EC(), i, len(round.OldParties().IDs()), xi, ks, bigXj) // 2. - vi, shares, err := vss.Create(round.NewThreshold(), wi, newKs) + vi, shares, err := vss.Create(round.Params().EC(), round.NewThreshold(), wi, newKs) if err != nil { return round.WrapError(err, round.PartyID()) } @@ -101,7 +101,7 @@ func (round *round1) Update() (bool, *tss.Error) { // save the ecdsa pub received from the old committee r1msg := round.temp.dgRound1Messages[0].Content().(*DGRound1Message) - candidate, err := r1msg.UnmarshalECDSAPub() + candidate, err := r1msg.UnmarshalECDSAPub(round.Params().EC()) if err != nil { return false, round.WrapError(errors.New("unable to unmarshal the ecdsa pub key"), msg.GetFrom()) } diff --git a/ecdsa/resharing/round_4_new_step_2.go b/ecdsa/resharing/round_4_new_step_2.go index f8247260..08519570 100644 --- a/ecdsa/resharing/round_4_new_step_2.go +++ b/ecdsa/resharing/round_4_new_step_2.go @@ -107,7 +107,7 @@ func (round *round4) Start() *tss.Error { newXi := big.NewInt(0) // 5-9. - modQ := common.ModInt(tss.EC().Params().N) + modQ := common.ModInt(round.Params().EC().Params().N) vjc := make([][]*crypto.ECPoint, len(round.OldParties().IDs())) for j := 0; j <= len(vjc)-1; j++ { // P1..P_t+1. Ps are indexed from 0 here // 6-7. @@ -123,7 +123,7 @@ func (round *round4) Start() *tss.Error { // TODO collect culprits and return a list of them as per convention return round.WrapError(errors.New("de-commitment of v_j0..v_jt failed"), round.Parties().IDs()[j]) } - vj, err := crypto.UnFlattenECPoints(tss.EC(), flatVs) + vj, err := crypto.UnFlattenECPoints(round.Params().EC(), flatVs) if err != nil { return round.WrapError(err, round.Parties().IDs()[j]) } @@ -136,7 +136,7 @@ func (round *round4) Start() *tss.Error { ID: round.PartyID().KeyInt(), Share: new(big.Int).SetBytes(r3msg1.Share), } - if ok := sharej.Verify(round.NewThreshold(), vj); !ok { + if ok := sharej.Verify(round.Params().EC(), round.NewThreshold(), vj); !ok { // TODO collect culprits and return a list of them as per convention return round.WrapError(errors.New("share from old committee did not pass Verify()"), round.Parties().IDs()[j]) } diff --git a/ecdsa/signing/ecdsa-signing.pb.go b/ecdsa/signing/ecdsa-signing.pb.go index 54eb0c78..7090a971 100644 --- a/ecdsa/signing/ecdsa-signing.pb.go +++ b/ecdsa/signing/ecdsa-signing.pb.go @@ -1,12 +1,19 @@ +// Copyright © 2019-2020 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. -// source: protob/ecdsa-signing.proto +// source: ecdsa-signing.proto package signing import ( fmt "fmt" - proto "github.com/golang/protobuf/proto" math "math" + + proto "github.com/golang/protobuf/proto" ) // Reference imports to suppress errors if they are not otherwise used. @@ -34,7 +41,7 @@ func (m *SignRound1Message1) Reset() { *m = SignRound1Message1{} } func (m *SignRound1Message1) String() string { return proto.CompactTextString(m) } func (*SignRound1Message1) ProtoMessage() {} func (*SignRound1Message1) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{0} + return fileDescriptor_d7fd069ec73c8494, []int{0} } func (m *SignRound1Message1) XXX_Unmarshal(b []byte) error { @@ -82,7 +89,7 @@ func (m *SignRound1Message2) Reset() { *m = SignRound1Message2{} } func (m *SignRound1Message2) String() string { return proto.CompactTextString(m) } func (*SignRound1Message2) ProtoMessage() {} func (*SignRound1Message2) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{1} + return fileDescriptor_d7fd069ec73c8494, []int{1} } func (m *SignRound1Message2) XXX_Unmarshal(b []byte) error { @@ -126,7 +133,7 @@ func (m *SignRound2Message) Reset() { *m = SignRound2Message{} } func (m *SignRound2Message) String() string { return proto.CompactTextString(m) } func (*SignRound2Message) ProtoMessage() {} func (*SignRound2Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{2} + return fileDescriptor_d7fd069ec73c8494, []int{2} } func (m *SignRound2Message) XXX_Unmarshal(b []byte) error { @@ -188,7 +195,7 @@ func (m *SignRound3Message) Reset() { *m = SignRound3Message{} } func (m *SignRound3Message) String() string { return proto.CompactTextString(m) } func (*SignRound3Message) ProtoMessage() {} func (*SignRound3Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{3} + return fileDescriptor_d7fd069ec73c8494, []int{3} } func (m *SignRound3Message) XXX_Unmarshal(b []byte) error { @@ -232,7 +239,7 @@ func (m *SignRound4Message) Reset() { *m = SignRound4Message{} } func (m *SignRound4Message) String() string { return proto.CompactTextString(m) } func (*SignRound4Message) ProtoMessage() {} func (*SignRound4Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{4} + return fileDescriptor_d7fd069ec73c8494, []int{4} } func (m *SignRound4Message) XXX_Unmarshal(b []byte) error { @@ -294,7 +301,7 @@ func (m *SignRound5Message) Reset() { *m = SignRound5Message{} } func (m *SignRound5Message) String() string { return proto.CompactTextString(m) } func (*SignRound5Message) ProtoMessage() {} func (*SignRound5Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{5} + return fileDescriptor_d7fd069ec73c8494, []int{5} } func (m *SignRound5Message) XXX_Unmarshal(b []byte) error { @@ -342,7 +349,7 @@ func (m *SignRound6Message) Reset() { *m = SignRound6Message{} } func (m *SignRound6Message) String() string { return proto.CompactTextString(m) } func (*SignRound6Message) ProtoMessage() {} func (*SignRound6Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{6} + return fileDescriptor_d7fd069ec73c8494, []int{6} } func (m *SignRound6Message) XXX_Unmarshal(b []byte) error { @@ -432,7 +439,7 @@ func (m *SignRound7Message) Reset() { *m = SignRound7Message{} } func (m *SignRound7Message) String() string { return proto.CompactTextString(m) } func (*SignRound7Message) ProtoMessage() {} func (*SignRound7Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{7} + return fileDescriptor_d7fd069ec73c8494, []int{7} } func (m *SignRound7Message) XXX_Unmarshal(b []byte) error { @@ -473,7 +480,7 @@ func (m *SignRound8Message) Reset() { *m = SignRound8Message{} } func (m *SignRound8Message) String() string { return proto.CompactTextString(m) } func (*SignRound8Message) ProtoMessage() {} func (*SignRound8Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{8} + return fileDescriptor_d7fd069ec73c8494, []int{8} } func (m *SignRound8Message) XXX_Unmarshal(b []byte) error { @@ -514,7 +521,7 @@ func (m *SignRound9Message) Reset() { *m = SignRound9Message{} } func (m *SignRound9Message) String() string { return proto.CompactTextString(m) } func (*SignRound9Message) ProtoMessage() {} func (*SignRound9Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{9} + return fileDescriptor_d7fd069ec73c8494, []int{9} } func (m *SignRound9Message) XXX_Unmarshal(b []byte) error { @@ -543,45 +550,46 @@ func (m *SignRound9Message) GetS() []byte { } func init() { - proto.RegisterType((*SignRound1Message1)(nil), "SignRound1Message1") - proto.RegisterType((*SignRound1Message2)(nil), "SignRound1Message2") - proto.RegisterType((*SignRound2Message)(nil), "SignRound2Message") - proto.RegisterType((*SignRound3Message)(nil), "SignRound3Message") - proto.RegisterType((*SignRound4Message)(nil), "SignRound4Message") - proto.RegisterType((*SignRound5Message)(nil), "SignRound5Message") - proto.RegisterType((*SignRound6Message)(nil), "SignRound6Message") - proto.RegisterType((*SignRound7Message)(nil), "SignRound7Message") - proto.RegisterType((*SignRound8Message)(nil), "SignRound8Message") - proto.RegisterType((*SignRound9Message)(nil), "SignRound9Message") -} - -func init() { proto.RegisterFile("protob/ecdsa-signing.proto", fileDescriptor_5f861bfc687bec19) } - -var fileDescriptor_5f861bfc687bec19 = []byte{ - // 395 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x93, 0x5f, 0x4b, 0xe3, 0x40, - 0x14, 0xc5, 0x49, 0xfa, 0xff, 0x6e, 0xba, 0xa5, 0xc3, 0xc2, 0x0e, 0x5d, 0x58, 0xba, 0xb3, 0x2c, - 0x74, 0x17, 0xd6, 0x92, 0xb4, 0x6a, 0x7d, 0xb4, 0x3e, 0x2b, 0xa5, 0x56, 0xb4, 0xbe, 0x84, 0x64, - 0x32, 0xa6, 0x01, 0x9b, 0x09, 0x49, 0x5a, 0xed, 0x47, 0xf1, 0xc9, 0xaf, 0x2a, 0x9d, 0x64, 0xca, - 0xb4, 0x15, 0xd4, 0x37, 0x1f, 0xef, 0x3d, 0xbf, 0x3b, 0xe7, 0xce, 0x81, 0x0b, 0xad, 0x28, 0xe6, - 0x29, 0x77, 0xbb, 0x8c, 0x7a, 0x89, 0xf3, 0x3f, 0x09, 0xfc, 0x30, 0x08, 0xfd, 0x03, 0xd1, 0x24, - 0x17, 0x80, 0x2e, 0x03, 0x3f, 0x1c, 0xf3, 0x45, 0xe8, 0x99, 0xe7, 0x2c, 0x49, 0x1c, 0x9f, 0x99, - 0xc8, 0x00, 0x8d, 0x62, 0xad, 0xad, 0x75, 0x8c, 0xb1, 0x46, 0xd1, 0x3f, 0x68, 0xc6, 0x4e, 0xe8, - 0x33, 0x3b, 0x8a, 0x39, 0xbf, 0xb3, 0x9d, 0xfb, 0x80, 0x32, 0xac, 0xb7, 0x0b, 0x1d, 0x63, 0xdc, - 0x10, 0xc2, 0x68, 0xdd, 0x3f, 0x5d, 0xb7, 0x49, 0xff, 0x95, 0xf7, 0x2c, 0xf4, 0x13, 0x80, 0xf2, - 0xf9, 0x3c, 0x48, 0xe7, 0x2c, 0x4c, 0xf3, 0x87, 0x95, 0x0e, 0x89, 0xa1, 0xb9, 0x99, 0xb2, 0xf2, - 0x29, 0xf4, 0x15, 0x74, 0x6a, 0xe6, 0xb0, 0x4e, 0x4d, 0x51, 0x5b, 0x58, 0xcf, 0x6b, 0x0b, 0xfd, - 0x80, 0x5a, 0xb6, 0x90, 0xcb, 0x5d, 0x5c, 0x10, 0xeb, 0x54, 0x45, 0x63, 0xc8, 0x5d, 0xd4, 0x06, - 0x63, 0x23, 0xda, 0x0f, 0x14, 0x17, 0x85, 0x0e, 0x52, 0xbf, 0xa6, 0xe4, 0xaf, 0xe2, 0xd9, 0x93, - 0x9e, 0xdf, 0xa0, 0x94, 0xce, 0x58, 0xea, 0xe4, 0xb6, 0x59, 0x41, 0x9e, 0x34, 0x85, 0xed, 0x4b, - 0xf6, 0x37, 0xd4, 0x3d, 0x66, 0x6f, 0xfd, 0x6b, 0xed, 0x61, 0x78, 0xec, 0x6c, 0xd3, 0x43, 0x04, - 0xea, 0x32, 0xb5, 0x68, 0xe6, 0xd8, 0x8f, 0xf9, 0xfe, 0x5f, 0xa2, 0x2c, 0xb2, 0x68, 0xe6, 0xdc, - 0xec, 0x32, 0x2b, 0x5c, 0xd8, 0x65, 0xa6, 0xe8, 0x3b, 0x54, 0x32, 0x26, 0xc5, 0x45, 0xa1, 0x96, - 0x45, 0x39, 0x21, 0x3d, 0x65, 0xb5, 0x43, 0xb9, 0xda, 0x5b, 0x79, 0x3f, 0xeb, 0xca, 0xd4, 0xd1, - 0xa7, 0xfa, 0x10, 0xfa, 0x03, 0x8d, 0xa5, 0xbd, 0x6d, 0x51, 0x12, 0x80, 0xb1, 0x1c, 0x29, 0x1e, - 0x7b, 0xd8, 0x0a, 0x97, 0xf7, 0xb0, 0x29, 0x6a, 0x41, 0x4d, 0x62, 0x29, 0xae, 0x08, 0xa0, 0x92, - 0x01, 0x13, 0x55, 0x5b, 0xe0, 0xaa, 0xaa, 0x5d, 0x6d, 0xc5, 0x7a, 0xfc, 0xde, 0x58, 0x07, 0xca, - 0xd0, 0xe0, 0x23, 0xa9, 0x92, 0x5f, 0xca, 0xe4, 0x89, 0x9c, 0x34, 0x40, 0x4b, 0xe4, 0x15, 0x26, - 0xc3, 0xc6, 0x6d, 0x5d, 0x1c, 0x70, 0x37, 0x3f, 0x60, 0xb7, 0x2c, 0x2e, 0xb8, 0xf7, 0x12, 0x00, - 0x00, 0xff, 0xff, 0xe8, 0xdb, 0x9c, 0xf3, 0xdf, 0x03, 0x00, 0x00, + proto.RegisterType((*SignRound1Message1)(nil), "binance.tsslib.ecdsa.signing.SignRound1Message1") + proto.RegisterType((*SignRound1Message2)(nil), "binance.tsslib.ecdsa.signing.SignRound1Message2") + proto.RegisterType((*SignRound2Message)(nil), "binance.tsslib.ecdsa.signing.SignRound2Message") + proto.RegisterType((*SignRound3Message)(nil), "binance.tsslib.ecdsa.signing.SignRound3Message") + proto.RegisterType((*SignRound4Message)(nil), "binance.tsslib.ecdsa.signing.SignRound4Message") + proto.RegisterType((*SignRound5Message)(nil), "binance.tsslib.ecdsa.signing.SignRound5Message") + proto.RegisterType((*SignRound6Message)(nil), "binance.tsslib.ecdsa.signing.SignRound6Message") + proto.RegisterType((*SignRound7Message)(nil), "binance.tsslib.ecdsa.signing.SignRound7Message") + proto.RegisterType((*SignRound8Message)(nil), "binance.tsslib.ecdsa.signing.SignRound8Message") + proto.RegisterType((*SignRound9Message)(nil), "binance.tsslib.ecdsa.signing.SignRound9Message") +} + +func init() { proto.RegisterFile("ecdsa-signing.proto", fileDescriptor_d7fd069ec73c8494) } + +var fileDescriptor_d7fd069ec73c8494 = []byte{ + // 409 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x93, 0xc1, 0x8b, 0x13, 0x31, + 0x14, 0xc6, 0x99, 0xe9, 0x6e, 0xbb, 0xfb, 0x9c, 0x5a, 0x36, 0x0a, 0x06, 0x15, 0xa9, 0x11, 0x61, + 0x15, 0x1c, 0x99, 0xe9, 0xaa, 0xeb, 0xd1, 0xf5, 0xac, 0x2c, 0xb5, 0xa2, 0xf5, 0x32, 0x64, 0x32, + 0x71, 0x3a, 0xd0, 0x26, 0xc3, 0x24, 0xad, 0xf6, 0x4f, 0xf1, 0xe4, 0xbf, 0x2a, 0xcd, 0x24, 0x25, + 0x6d, 0x05, 0xf5, 0xe6, 0xf1, 0xbd, 0xef, 0xf7, 0xf2, 0xbd, 0x7c, 0xf0, 0xe0, 0x16, 0x67, 0x85, + 0xa2, 0xcf, 0x54, 0x55, 0x8a, 0x4a, 0x94, 0x71, 0xdd, 0x48, 0x2d, 0xd1, 0xfd, 0xbc, 0x12, 0x54, + 0x30, 0x1e, 0x6b, 0xa5, 0xe6, 0x55, 0x1e, 0x1b, 0x26, 0xb6, 0x0c, 0x79, 0x0f, 0xe8, 0x43, 0x55, + 0x8a, 0xb1, 0x5c, 0x8a, 0x22, 0x79, 0xc7, 0x95, 0xa2, 0x25, 0x4f, 0x50, 0x04, 0x01, 0xc3, 0xc1, + 0x30, 0x38, 0x8f, 0xc6, 0x01, 0x43, 0x4f, 0xe1, 0xac, 0xa1, 0xa2, 0xe4, 0x59, 0xdd, 0x48, 0xf9, + 0x35, 0xa3, 0xf3, 0x8a, 0x71, 0x1c, 0x0e, 0x3b, 0xe7, 0xd1, 0x78, 0x60, 0x84, 0xeb, 0x4d, 0xff, + 0xcd, 0xa6, 0x4d, 0x2e, 0x7e, 0xf3, 0x5e, 0x8a, 0x1e, 0x00, 0x30, 0xb9, 0x58, 0x54, 0x7a, 0xc1, + 0x85, 0xb6, 0x0f, 0x7b, 0x1d, 0xd2, 0xc0, 0xd9, 0x76, 0x2a, 0xb5, 0x53, 0xe8, 0x26, 0x84, 0x2c, + 0xb1, 0x70, 0xc8, 0x12, 0x53, 0xa7, 0x38, 0xb4, 0x75, 0x8a, 0xee, 0xc1, 0x69, 0xbb, 0x50, 0x2e, + 0x73, 0xdc, 0x31, 0xeb, 0x9c, 0x98, 0xc6, 0x95, 0xcc, 0xd1, 0x10, 0xa2, 0xad, 0x98, 0x7d, 0x63, + 0xf8, 0xc8, 0xe8, 0xe0, 0xf4, 0x4f, 0x8c, 0x3c, 0xf1, 0x3c, 0x47, 0xce, 0xf3, 0x36, 0x1c, 0xeb, + 0x19, 0xd7, 0xd4, 0xda, 0xb6, 0x05, 0xf9, 0x11, 0x78, 0xec, 0x85, 0x63, 0x1f, 0x41, 0xbf, 0xe0, + 0xd9, 0xce, 0xbf, 0x36, 0x1e, 0x51, 0xc1, 0xdf, 0x6e, 0x7b, 0x88, 0x40, 0xdf, 0xa5, 0x56, 0xcf, + 0x68, 0xf6, 0xdd, 0xee, 0x7f, 0xa3, 0x6e, 0x23, 0xab, 0x67, 0xf4, 0xf3, 0x3e, 0xb3, 0xc6, 0x9d, + 0x7d, 0x66, 0x8a, 0xee, 0x40, 0xaf, 0x65, 0x34, 0x3e, 0x32, 0x6a, 0xd7, 0x94, 0x13, 0x32, 0xf2, + 0x56, 0x7b, 0xe1, 0x56, 0xfb, 0x53, 0xde, 0x3f, 0x43, 0x6f, 0xea, 0xe5, 0x7f, 0xf5, 0x21, 0xf4, + 0x18, 0x06, 0xab, 0x6c, 0xd7, 0xe2, 0xd8, 0x00, 0xd1, 0xea, 0xda, 0xf3, 0x38, 0xc0, 0xd6, 0xb8, + 0x7b, 0x80, 0x4d, 0xd1, 0x5d, 0x38, 0x75, 0x98, 0xc6, 0x3d, 0x03, 0xf4, 0x5a, 0x60, 0xe2, 0x6b, + 0x4b, 0x7c, 0xe2, 0x6b, 0x1f, 0x77, 0x62, 0x7d, 0xf5, 0xb7, 0xb1, 0x5e, 0x7a, 0x43, 0x97, 0xff, + 0x92, 0x2a, 0x79, 0xe8, 0x4d, 0xbe, 0x76, 0x93, 0x11, 0x04, 0xca, 0x5d, 0xa1, 0xba, 0x1a, 0x7c, + 0xe9, 0x9b, 0xd3, 0x7d, 0x6e, 0x4f, 0x37, 0xef, 0x9a, 0xfb, 0x1e, 0xfd, 0x0a, 0x00, 0x00, 0xff, + 0xff, 0x63, 0x2f, 0x21, 0x2c, 0xf6, 0x03, 0x00, 0x00, } diff --git a/ecdsa/signing/finalize.go b/ecdsa/signing/finalize.go index 60bb89e8..eb1ac295 100644 --- a/ecdsa/signing/finalize.go +++ b/ecdsa/signing/finalize.go @@ -25,7 +25,7 @@ func (round *finalization) Start() *tss.Error { round.resetOK() sumS := round.temp.si - modN := common.ModInt(tss.EC().Params().N) + modN := common.ModInt(round.Params().EC().Params().N) for j := range round.Parties().IDs() { round.ok[j] = true @@ -38,7 +38,7 @@ func (round *finalization) Start() *tss.Error { recid := 0 // byte v = if(R.X > curve.N) then 2 else 0) | (if R.Y.IsEven then 0 else 1); - if round.temp.rx.Cmp(tss.EC().Params().N) > 0 { + if round.temp.rx.Cmp(round.Params().EC().Params().N) > 0 { recid = 2 } if round.temp.ry.Bit(0) != 0 { @@ -49,14 +49,14 @@ func (round *finalization) Start() *tss.Error { // https://github.com/btcsuite/btcd/blob/c26ffa870fd817666a857af1bf6498fabba1ffe3/btcec/signature.go#L442-L444 // This is needed because of tendermint checks here: // https://github.com/tendermint/tendermint/blob/d9481e3648450cb99e15c6a070c1fb69aa0c255b/crypto/secp256k1/secp256k1_nocgo.go#L43-L47 - secp256k1halfN := new(big.Int).Rsh(tss.EC().Params().N, 1) + secp256k1halfN := new(big.Int).Rsh(round.Params().EC().Params().N, 1) if sumS.Cmp(secp256k1halfN) > 0 { - sumS.Sub(tss.EC().Params().N, sumS) + sumS.Sub(round.Params().EC().Params().N, sumS) recid ^= 1 } // save the signature for final output - bitSizeInBytes := tss.EC().Params().BitSize / 8 + bitSizeInBytes := round.Params().EC().Params().BitSize / 8 round.data.R = padToLengthBytesInPlace(round.temp.rx.Bytes(), bitSizeInBytes) round.data.S = padToLengthBytesInPlace(sumS.Bytes(), bitSizeInBytes) round.data.Signature = append(round.data.R, round.data.S...) @@ -64,7 +64,7 @@ func (round *finalization) Start() *tss.Error { round.data.M = round.temp.m.Bytes() pk := ecdsa.PublicKey{ - Curve: tss.EC(), + Curve: round.Params().EC(), X: round.key.ECDSAPub.X(), Y: round.key.ECDSAPub.Y(), } diff --git a/ecdsa/signing/local_party_test.go b/ecdsa/signing/local_party_test.go index 37a00d7f..7db6f069 100644 --- a/ecdsa/signing/local_party_test.go +++ b/ecdsa/signing/local_party_test.go @@ -57,7 +57,7 @@ func TestE2EConcurrent(t *testing.T) { // init the parties for i := 0; i < len(signPIDs); i++ { - params := tss.NewParameters(p2pCtx, signPIDs[i], len(signPIDs), threshold) + params := tss.NewParameters(tss.S256(), p2pCtx, signPIDs[i], len(signPIDs), threshold) P := NewLocalParty(big.NewInt(42), params, keys[i], outCh, endCh).(*LocalParty) parties = append(parties, P) @@ -102,7 +102,7 @@ signing: r := parties[0].temp.rx fmt.Printf("sign result: R(%s, %s), r=%s\n", R.X().String(), R.Y().String(), r.String()) - modN := common.ModInt(tss.EC().Params().N) + modN := common.ModInt(tss.S256().Params().N) // BEGIN check s correctness sumS := big.NewInt(0) diff --git a/ecdsa/signing/messages.go b/ecdsa/signing/messages.go index 3cbfa39d..a5d48153 100644 --- a/ecdsa/signing/messages.go +++ b/ecdsa/signing/messages.go @@ -7,10 +7,9 @@ package signing import ( + "crypto/elliptic" "math/big" - "github.com/golang/protobuf/proto" - "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" cmt "github.com/binance-chain/tss-lib/crypto/commitments" @@ -38,19 +37,6 @@ var ( } ) -func init() { - proto.RegisterType((*SignRound1Message1)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound1Message1") - proto.RegisterType((*SignRound1Message2)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound1Message2") - proto.RegisterType((*SignRound2Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound2Message") - proto.RegisterType((*SignRound3Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound3Message") - proto.RegisterType((*SignRound4Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound4Message") - proto.RegisterType((*SignRound5Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound5Message") - proto.RegisterType((*SignRound6Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound6Message") - proto.RegisterType((*SignRound7Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound7Message") - proto.RegisterType((*SignRound8Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound8Message") - proto.RegisterType((*SignRound9Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound9Message") -} - // ----- // func NewSignRound1Message1( @@ -150,8 +136,8 @@ func (m *SignRound2Message) UnmarshalProofBob() (*mta.ProofBob, error) { return mta.ProofBobFromBytes(m.ProofBob) } -func (m *SignRound2Message) UnmarshalProofBobWC() (*mta.ProofBobWC, error) { - return mta.ProofBobWCFromBytes(m.ProofBobWc) +func (m *SignRound2Message) UnmarshalProofBobWC(ec elliptic.Curve) (*mta.ProofBobWC, error) { + return mta.ProofBobWCFromBytes(ec, m.ProofBobWc) } // ----- // @@ -211,9 +197,9 @@ func (m *SignRound4Message) UnmarshalDeCommitment() []*big.Int { return cmt.NewHashDeCommitmentFromBytes(deComBzs) } -func (m *SignRound4Message) UnmarshalZKProof() (*schnorr.ZKProof, error) { +func (m *SignRound4Message) UnmarshalZKProof(ec elliptic.Curve) (*schnorr.ZKProof, error) { point, err := crypto.NewECPoint( - tss.EC(), + ec, new(big.Int).SetBytes(m.GetProofAlphaX()), new(big.Int).SetBytes(m.GetProofAlphaY())) if err != nil { @@ -295,9 +281,9 @@ func (m *SignRound6Message) UnmarshalDeCommitment() []*big.Int { return cmt.NewHashDeCommitmentFromBytes(deComBzs) } -func (m *SignRound6Message) UnmarshalZKProof() (*schnorr.ZKProof, error) { +func (m *SignRound6Message) UnmarshalZKProof(ec elliptic.Curve) (*schnorr.ZKProof, error) { point, err := crypto.NewECPoint( - tss.EC(), + ec, new(big.Int).SetBytes(m.GetProofAlphaX()), new(big.Int).SetBytes(m.GetProofAlphaY())) if err != nil { @@ -309,9 +295,9 @@ func (m *SignRound6Message) UnmarshalZKProof() (*schnorr.ZKProof, error) { }, nil } -func (m *SignRound6Message) UnmarshalZKVProof() (*schnorr.ZKVProof, error) { +func (m *SignRound6Message) UnmarshalZKVProof(ec elliptic.Curve) (*schnorr.ZKVProof, error) { point, err := crypto.NewECPoint( - tss.EC(), + ec, new(big.Int).SetBytes(m.GetVProofAlphaX()), new(big.Int).SetBytes(m.GetVProofAlphaY())) if err != nil { diff --git a/ecdsa/signing/prepare.go b/ecdsa/signing/prepare.go index 149fa331..7f79ff35 100644 --- a/ecdsa/signing/prepare.go +++ b/ecdsa/signing/prepare.go @@ -7,17 +7,17 @@ package signing import ( + "crypto/elliptic" "fmt" "math/big" "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/tss" ) // PrepareForSigning(), GG18Spec (11) Fig. 14 -func PrepareForSigning(i, pax int, xi *big.Int, ks []*big.Int, bigXs []*crypto.ECPoint) (wi *big.Int, bigWs []*crypto.ECPoint) { - modQ := common.ModInt(tss.EC().Params().N) +func PrepareForSigning(ec elliptic.Curve, i, pax int, xi *big.Int, ks []*big.Int, bigXs []*crypto.ECPoint) (wi *big.Int, bigWs []*crypto.ECPoint) { + modQ := common.ModInt(ec.Params().N) if len(ks) != len(bigXs) { panic(fmt.Errorf("PrepareForSigning: len(ks) != len(bigXs) (%d != %d)", len(ks), len(bigXs))) } diff --git a/ecdsa/signing/round_1.go b/ecdsa/signing/round_1.go index 99a3f06b..67b1f270 100644 --- a/ecdsa/signing/round_1.go +++ b/ecdsa/signing/round_1.go @@ -38,7 +38,7 @@ func (round *round1) Start() *tss.Error { // but considered different blockchain use different hash function we accept the converted big.Int // if this big.Int is not belongs to Zq, the client might not comply with common rule (for ECDSA): // https://github.com/btcsuite/btcd/blob/c26ffa870fd817666a857af1bf6498fabba1ffe3/btcec/signature.go#L263 - if round.temp.m.Cmp(tss.EC().Params().N) >= 0 { + if round.temp.m.Cmp(round.Params().EC().Params().N) >= 0 { return round.WrapError(errors.New("hashed message is not valid")) } @@ -46,10 +46,10 @@ func (round *round1) Start() *tss.Error { round.started = true round.resetOK() - k := common.GetRandomPositiveInt(tss.EC().Params().N) - gamma := common.GetRandomPositiveInt(tss.EC().Params().N) + k := common.GetRandomPositiveInt(round.Params().EC().Params().N) + gamma := common.GetRandomPositiveInt(round.Params().EC().Params().N) - pointGamma := crypto.ScalarBaseMult(tss.EC(), gamma) + pointGamma := crypto.ScalarBaseMult(round.Params().EC(), gamma) cmt := commitments.NewHashCommitment(pointGamma.X(), pointGamma.Y()) round.temp.k = k round.temp.gamma = gamma @@ -63,7 +63,7 @@ func (round *round1) Start() *tss.Error { if j == i { continue } - cA, pi, err := mta.AliceInit(round.key.PaillierPKs[i], k, round.key.NTildej[j], round.key.H1j[j], round.key.H2j[j]) + cA, pi, err := mta.AliceInit(round.Params().EC(), round.key.PaillierPKs[i], k, round.key.NTildej[j], round.key.H1j[j], round.key.H2j[j]) if err != nil { return round.WrapError(fmt.Errorf("failed to init mta: %v", err)) } @@ -124,7 +124,7 @@ func (round *round1) prepare() error { if round.Threshold()+1 > len(ks) { return fmt.Errorf("t+1=%d is not satisfied by the key count of %d", round.Threshold()+1, len(ks)) } - wi, bigWs := PrepareForSigning(i, len(ks), xi, ks, bigXs) + wi, bigWs := PrepareForSigning(round.Params().EC(), i, len(ks), xi, ks, bigXs) round.temp.w = wi round.temp.bigWs = bigWs diff --git a/ecdsa/signing/round_2.go b/ecdsa/signing/round_2.go index 37e8e0cf..53865de3 100644 --- a/ecdsa/signing/round_2.go +++ b/ecdsa/signing/round_2.go @@ -44,6 +44,7 @@ func (round *round2) Start() *tss.Error { return } beta, c1ji, _, pi1ji, err := mta.BobMid( + round.Parameters.EC(), round.key.PaillierPKs[j], rangeProofAliceJ, round.temp.gamma, @@ -72,6 +73,7 @@ func (round *round2) Start() *tss.Error { return } v, c2ji, _, pi2ji, err := mta.BobMidWC( + round.Parameters.EC(), round.key.PaillierPKs[j], rangeProofAliceJ, round.temp.w, diff --git a/ecdsa/signing/round_3.go b/ecdsa/signing/round_3.go index 709f7aaf..cb72f59e 100644 --- a/ecdsa/signing/round_3.go +++ b/ecdsa/signing/round_3.go @@ -48,6 +48,7 @@ func (round *round3) Start() *tss.Error { return } alphaIj, err := mta.AliceEnd( + round.Params().EC(), round.key.PaillierPKs[i], proofBob, round.key.H1j[i], @@ -65,12 +66,13 @@ func (round *round3) Start() *tss.Error { go func(j int, Pj *tss.PartyID) { defer wg.Done() r2msg := round.temp.signRound2Messages[j].Content().(*SignRound2Message) - proofBobWC, err := r2msg.UnmarshalProofBobWC() + proofBobWC, err := r2msg.UnmarshalProofBobWC(round.Parameters.EC()) if err != nil { errChs <- round.WrapError(errorspkg.Wrapf(err, "UnmarshalProofBobWC failed"), Pj) return } uIj, err := mta.AliceEndWC( + round.Params().EC(), round.key.PaillierPKs[i], proofBobWC, round.temp.bigWs[j], @@ -98,7 +100,7 @@ func (round *round3) Start() *tss.Error { return round.WrapError(errors.New("failed to calculate Alice_end or Alice_end_wc"), culprits...) } - modN := common.ModInt(tss.EC().Params().N) + modN := common.ModInt(round.Params().EC().Params().N) thelta := modN.Mul(round.temp.k, round.temp.gamma) sigma := modN.Mul(round.temp.k, round.temp.w) diff --git a/ecdsa/signing/round_4.go b/ecdsa/signing/round_4.go index dbf33e5f..c8d3c1af 100644 --- a/ecdsa/signing/round_4.go +++ b/ecdsa/signing/round_4.go @@ -28,7 +28,7 @@ func (round *round4) Start() *tss.Error { theta := *round.temp.theta thetaInverse := &theta - modN := common.ModInt(tss.EC().Params().N) + modN := common.ModInt(round.Params().EC().Params().N) for j := range round.Parties().IDs() { if j == round.PartyID().Index { diff --git a/ecdsa/signing/round_5.go b/ecdsa/signing/round_5.go index 23e28d5f..1bc39572 100644 --- a/ecdsa/signing/round_5.go +++ b/ecdsa/signing/round_5.go @@ -38,11 +38,11 @@ func (round *round5) Start() *tss.Error { if !ok || len(bigGammaJ) != 2 { return round.WrapError(errors.New("commitment verify failed"), Pj) } - bigGammaJPoint, err := crypto.NewECPoint(tss.EC(), bigGammaJ[0], bigGammaJ[1]) + bigGammaJPoint, err := crypto.NewECPoint(round.Params().EC(), bigGammaJ[0], bigGammaJ[1]) if err != nil { return round.WrapError(errors2.Wrapf(err, "NewECPoint(bigGammaJ)"), Pj) } - proof, err := r4msg.UnmarshalZKProof() + proof, err := r4msg.UnmarshalZKProof(round.Params().EC()) if err != nil { return round.WrapError(errors.New("failed to unmarshal bigGamma proof"), Pj) } @@ -57,7 +57,7 @@ func (round *round5) Start() *tss.Error { } R = R.ScalarMult(round.temp.thetaInverse) - N := tss.EC().Params().N + N := round.Params().EC().Params().N modN := common.ModInt(N) rx := R.X() ry := R.Y() @@ -70,8 +70,8 @@ func (round *round5) Start() *tss.Error { li := common.GetRandomPositiveInt(N) // li roI := common.GetRandomPositiveInt(N) // pi rToSi := R.ScalarMult(si) - liPoint := crypto.ScalarBaseMult(tss.EC(), li) - bigAi := crypto.ScalarBaseMult(tss.EC(), roI) + liPoint := crypto.ScalarBaseMult(round.Params().EC(), li) + bigAi := crypto.ScalarBaseMult(round.Params().EC(), roI) bigVi, err := rToSi.Add(liPoint) if err != nil { return round.WrapError(errors2.Wrapf(err, "rToSi.Add(li)")) diff --git a/ecdsa/signing/round_7.go b/ecdsa/signing/round_7.go index a8f0cb19..36a87d98 100644 --- a/ecdsa/signing/round_7.go +++ b/ecdsa/signing/round_7.go @@ -41,47 +41,47 @@ func (round *round7) Start() *tss.Error { return round.WrapError(errors.New("de-commitment for bigVj and bigAj failed"), Pj) } bigVjX, bigVjY, bigAjX, bigAjY := values[0], values[1], values[2], values[3] - bigVj, err := crypto.NewECPoint(tss.EC(), bigVjX, bigVjY) + bigVj, err := crypto.NewECPoint(round.Params().EC(), bigVjX, bigVjY) if err != nil { return round.WrapError(errors2.Wrapf(err, "NewECPoint(bigVj)"), Pj) } bigVjs[j] = bigVj - bigAj, err := crypto.NewECPoint(tss.EC(), bigAjX, bigAjY) + bigAj, err := crypto.NewECPoint(round.Params().EC(), bigAjX, bigAjY) if err != nil { return round.WrapError(errors2.Wrapf(err, "NewECPoint(bigAj)"), Pj) } bigAjs[j] = bigAj - pijA, err := r6msg.UnmarshalZKProof() + pijA, err := r6msg.UnmarshalZKProof(round.Params().EC()) if err != nil || !pijA.Verify(bigAj) { return round.WrapError(errors.New("schnorr verify for Aj failed"), Pj) } - pijV, err := r6msg.UnmarshalZKVProof() + pijV, err := r6msg.UnmarshalZKVProof(round.Params().EC()) if err != nil || !pijV.Verify(bigVj, round.temp.bigR) { return round.WrapError(errors.New("vverify for Vj failed"), Pj) } } - modN := common.ModInt(tss.EC().Params().N) + modN := common.ModInt(round.Params().EC().Params().N) AX, AY := round.temp.bigAi.X(), round.temp.bigAi.Y() minusM := modN.Sub(big.NewInt(0), round.temp.m) - gToMInvX, gToMInvY := tss.EC().ScalarBaseMult(minusM.Bytes()) + gToMInvX, gToMInvY := round.Params().EC().ScalarBaseMult(minusM.Bytes()) minusR := modN.Sub(big.NewInt(0), round.temp.rx) - yToRInvX, yToRInvY := tss.EC().ScalarMult(round.key.ECDSAPub.X(), round.key.ECDSAPub.Y(), minusR.Bytes()) - VX, VY := tss.EC().Add(gToMInvX, gToMInvY, yToRInvX, yToRInvY) - VX, VY = tss.EC().Add(VX, VY, round.temp.bigVi.X(), round.temp.bigVi.Y()) + yToRInvX, yToRInvY := round.Params().EC().ScalarMult(round.key.ECDSAPub.X(), round.key.ECDSAPub.Y(), minusR.Bytes()) + VX, VY := round.Params().EC().Add(gToMInvX, gToMInvY, yToRInvX, yToRInvY) + VX, VY = round.Params().EC().Add(VX, VY, round.temp.bigVi.X(), round.temp.bigVi.Y()) for j := range round.Parties().IDs() { if j == round.PartyID().Index { continue } - VX, VY = tss.EC().Add(VX, VY, bigVjs[j].X(), bigVjs[j].Y()) - AX, AY = tss.EC().Add(AX, AY, bigAjs[j].X(), bigAjs[j].Y()) + VX, VY = round.Params().EC().Add(VX, VY, bigVjs[j].X(), bigVjs[j].Y()) + AX, AY = round.Params().EC().Add(AX, AY, bigAjs[j].X(), bigAjs[j].Y()) } - UiX, UiY := tss.EC().ScalarMult(VX, VY, round.temp.roi.Bytes()) - TiX, TiY := tss.EC().ScalarMult(AX, AY, round.temp.li.Bytes()) - round.temp.Ui = crypto.NewECPointNoCurveCheck(tss.EC(), UiX, UiY) - round.temp.Ti = crypto.NewECPointNoCurveCheck(tss.EC(), TiX, TiY) + UiX, UiY := round.Params().EC().ScalarMult(VX, VY, round.temp.roi.Bytes()) + TiX, TiY := round.Params().EC().ScalarMult(AX, AY, round.temp.li.Bytes()) + round.temp.Ui = crypto.NewECPointNoCurveCheck(round.Params().EC(), UiX, UiY) + round.temp.Ti = crypto.NewECPointNoCurveCheck(round.Params().EC(), TiX, TiY) cmt := commitments.NewHashCommitment(UiX, UiY, TiX, TiY) r7msg := NewSignRound7Message(round.PartyID(), cmt.C) round.temp.signRound7Messages[round.PartyID().Index] = r7msg diff --git a/ecdsa/signing/round_9.go b/ecdsa/signing/round_9.go index 0787f38b..2f8f18c5 100644 --- a/ecdsa/signing/round_9.go +++ b/ecdsa/signing/round_9.go @@ -37,8 +37,8 @@ func (round *round9) Start() *tss.Error { return round.WrapError(errors.New("de-commitment for bigVj and bigAj failed"), Pj) } UjX, UjY, TjX, TjY := values[0], values[1], values[2], values[3] - UX, UY = tss.EC().Add(UX, UY, UjX, UjY) - TX, TY = tss.EC().Add(TX, TY, TjX, TjY) + UX, UY = round.Params().EC().Add(UX, UY, UjX, UjY) + TX, TY = round.Params().EC().Add(TX, TY, TjX, TjY) } if UX.Cmp(TX) != 0 || UY.Cmp(TY) != 0 { return round.WrapError(errors.New("U doesn't equal T"), round.PartyID()) diff --git a/eddsa/keygen/eddsa-keygen.pb.go b/eddsa/keygen/eddsa-keygen.pb.go index 7fd26e62..3a51b2c4 100644 --- a/eddsa/keygen/eddsa-keygen.pb.go +++ b/eddsa/keygen/eddsa-keygen.pb.go @@ -1,3 +1,9 @@ +// Copyright © 2019-2020 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. // source: eddsa-keygen.proto @@ -5,8 +11,9 @@ package keygen import ( fmt "fmt" - proto "github.com/golang/protobuf/proto" math "math" + + proto "github.com/golang/protobuf/proto" ) // Reference imports to suppress errors if they are not otherwise used. @@ -168,26 +175,27 @@ func (m *KGRound2Message2) GetProofT() []byte { } func init() { - proto.RegisterType((*KGRound1Message)(nil), "KGRound1Message") - proto.RegisterType((*KGRound2Message1)(nil), "KGRound2Message1") - proto.RegisterType((*KGRound2Message2)(nil), "KGRound2Message2") + proto.RegisterType((*KGRound1Message)(nil), "binance.tsslib.eddsa.keygen.KGRound1Message") + proto.RegisterType((*KGRound2Message1)(nil), "binance.tsslib.eddsa.keygen.KGRound2Message1") + proto.RegisterType((*KGRound2Message2)(nil), "binance.tsslib.eddsa.keygen.KGRound2Message2") } func init() { proto.RegisterFile("eddsa-keygen.proto", fileDescriptor_87f3b4615ca57212) } var fileDescriptor_87f3b4615ca57212 = []byte{ - // 200 bytes of a gzipped FileDescriptorProto + // 222 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4a, 0x4d, 0x49, 0x29, - 0x4e, 0xd4, 0xcd, 0x4e, 0xad, 0x4c, 0x4f, 0xcd, 0xd3, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x57, 0x32, - 0xe4, 0xe2, 0xf7, 0x76, 0x0f, 0xca, 0x2f, 0xcd, 0x4b, 0x31, 0xf4, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c, - 0x4f, 0x15, 0x92, 0xe3, 0xe2, 0x4a, 0xce, 0xcf, 0xcd, 0xcd, 0x2c, 0xc9, 0x4d, 0xcd, 0x2b, 0x91, - 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x09, 0x42, 0x12, 0x51, 0xd2, 0xe0, 0x12, 0x80, 0x6a, 0x31, 0x82, - 0x6a, 0x31, 0x14, 0x12, 0xe1, 0x62, 0x2d, 0xce, 0x48, 0x2c, 0x4a, 0x85, 0x2a, 0x87, 0x70, 0x94, - 0x66, 0x30, 0x62, 0x28, 0x35, 0x12, 0x52, 0xe6, 0xe2, 0x4d, 0x49, 0x8d, 0x47, 0xb1, 0x81, 0x59, - 0x83, 0x27, 0x88, 0x27, 0x25, 0xd5, 0x19, 0x2e, 0x26, 0xa4, 0xc4, 0xc5, 0x5b, 0x50, 0x94, 0x9f, - 0x9f, 0x16, 0x9f, 0x98, 0x53, 0x90, 0x91, 0x18, 0x5f, 0x21, 0xc1, 0x04, 0x36, 0x97, 0x1b, 0x2c, - 0xe8, 0x08, 0x12, 0x8b, 0x40, 0x57, 0x53, 0x29, 0xc1, 0x8c, 0xae, 0x26, 0x52, 0x48, 0x9c, 0x8b, - 0x1d, 0xa2, 0xa6, 0x44, 0x82, 0x05, 0x2c, 0xcb, 0x06, 0xe6, 0x86, 0x38, 0xf1, 0x45, 0xf1, 0x80, - 0x43, 0x43, 0x1f, 0x12, 0x1a, 0x49, 0x6c, 0xe0, 0xe0, 0x30, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, - 0x61, 0x46, 0xe6, 0x18, 0x24, 0x01, 0x00, 0x00, + 0x4e, 0xd4, 0xcd, 0x4e, 0xad, 0x4c, 0x4f, 0xcd, 0xd3, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, + 0x4e, 0xca, 0xcc, 0x4b, 0xcc, 0x4b, 0x4e, 0xd5, 0x2b, 0x29, 0x2e, 0xce, 0xc9, 0x4c, 0xd2, 0x03, + 0x2b, 0xd1, 0x83, 0x28, 0x51, 0x32, 0xe4, 0xe2, 0xf7, 0x76, 0x0f, 0xca, 0x2f, 0xcd, 0x4b, 0x31, + 0xf4, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c, 0x4f, 0x15, 0x92, 0xe3, 0xe2, 0x4a, 0xce, 0xcf, 0xcd, 0xcd, + 0x2c, 0xc9, 0x4d, 0xcd, 0x2b, 0x91, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x09, 0x42, 0x12, 0x51, 0xd2, + 0xe0, 0x12, 0x80, 0x6a, 0x31, 0x82, 0x6a, 0x31, 0x14, 0x12, 0xe1, 0x62, 0x2d, 0xce, 0x48, 0x2c, + 0x4a, 0x85, 0x2a, 0x87, 0x70, 0x94, 0x66, 0x30, 0x62, 0x28, 0x35, 0x12, 0x52, 0xe6, 0xe2, 0x4d, + 0x49, 0x8d, 0x47, 0xb1, 0x81, 0x59, 0x83, 0x27, 0x88, 0x27, 0x25, 0xd5, 0x19, 0x2e, 0x26, 0xa4, + 0xc4, 0xc5, 0x5b, 0x50, 0x94, 0x9f, 0x9f, 0x16, 0x9f, 0x98, 0x53, 0x90, 0x91, 0x18, 0x5f, 0x21, + 0xc1, 0x04, 0x36, 0x97, 0x1b, 0x2c, 0xe8, 0x08, 0x12, 0x8b, 0x40, 0x57, 0x53, 0x29, 0xc1, 0x8c, + 0xae, 0x26, 0x52, 0x48, 0x9c, 0x8b, 0x1d, 0xa2, 0xa6, 0x44, 0x82, 0x05, 0x2c, 0xcb, 0x06, 0xe6, + 0x86, 0x38, 0xf1, 0x45, 0xf1, 0x80, 0xc3, 0x41, 0x1f, 0x12, 0x0e, 0x49, 0x6c, 0xe0, 0xb0, 0x32, + 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xcd, 0xf7, 0x07, 0xe1, 0x41, 0x01, 0x00, 0x00, } diff --git a/eddsa/keygen/local_party_test.go b/eddsa/keygen/local_party_test.go index bc90e85a..7cc54f69 100644 --- a/eddsa/keygen/local_party_test.go +++ b/eddsa/keygen/local_party_test.go @@ -40,8 +40,6 @@ func setUp(level string) { func TestE2EConcurrentAndSaveFixtures(t *testing.T) { setUp("info") - tss.SetCurve(edwards.Edwards()) - threshold := testThreshold fixtures, pIDs, err := LoadKeygenTestFixtures(testParticipants) if err != nil { @@ -63,7 +61,7 @@ func TestE2EConcurrentAndSaveFixtures(t *testing.T) { // init the parties for i := 0; i < len(pIDs); i++ { var P *LocalParty - params := tss.NewParameters(p2pCtx, pIDs[i], len(pIDs), threshold) + params := tss.NewParameters(tss.Edwards(), p2pCtx, pIDs[i], len(pIDs), threshold) if i < len(fixtures) { P = NewLocalParty(params, outCh, endCh).(*LocalParty) } else { @@ -133,17 +131,17 @@ keygen: } pShares = append(pShares, shareStruct) } - uj, err := pShares[:threshold+1].ReConstruct() + uj, err := pShares[:threshold+1].ReConstruct(tss.Edwards()) assert.NoError(t, err, "vss.ReConstruct should not throw error") // uG test: u*G[j] == V[0] assert.Equal(t, uj, Pj.temp.ui) - uG := crypto.ScalarBaseMult(tss.EC(), uj) + uG := crypto.ScalarBaseMult(tss.Edwards(), uj) assert.True(t, uG.Equals(Pj.temp.vs[0]), "ensure u*G[j] == V_0") // xj tests: BigXj == xj*G xj := Pj.data.Xi - gXj := crypto.ScalarBaseMult(tss.EC(), xj) + gXj := crypto.ScalarBaseMult(tss.Edwards(), xj) BigXj := Pj.data.BigXj[j] assert.True(t, BigXj.Equals(gXj), "ensure BigX_j == g^x_j") @@ -151,23 +149,23 @@ keygen: { badShares := pShares[:threshold] badShares[len(badShares)-1].Share.Set(big.NewInt(0)) - uj, err := pShares[:threshold].ReConstruct() + uj, err := pShares[:threshold].ReConstruct(tss.Edwards()) assert.NoError(t, err) assert.NotEqual(t, parties[j].temp.ui, uj) - BigXjX, BigXjY := tss.EC().ScalarBaseMult(uj.Bytes()) + BigXjX, BigXjY := tss.Edwards().ScalarBaseMult(uj.Bytes()) assert.NotEqual(t, BigXjX, Pj.temp.vs[0].X()) assert.NotEqual(t, BigXjY, Pj.temp.vs[0].Y()) } u = new(big.Int).Add(u, uj) } - u = new(big.Int).Mod(u, tss.EC().Params().N) + u = new(big.Int).Mod(u, tss.Edwards().Params().N) scalar := make([]byte, 0, 32) copy(scalar, u.Bytes()) // build eddsa key pair pkX, pkY := save.EDDSAPub.X(), save.EDDSAPub.Y() pk := edwards.PublicKey{ - Curve: tss.EC(), + Curve: tss.Edwards(), X: pkX, Y: pkY, } @@ -182,7 +180,7 @@ keygen: // public key tests assert.NotZero(t, u, "u should not be zero") - ourPkX, ourPkY := tss.EC().ScalarBaseMult(u.Bytes()) + ourPkX, ourPkY := tss.Edwards().ScalarBaseMult(u.Bytes()) assert.Equal(t, pkX, ourPkX, "pkX should match expected pk derived from u") assert.Equal(t, pkY, ourPkY, "pkY should match expected pk derived from u") t.Log("Public key tests done.") diff --git a/eddsa/keygen/messages.go b/eddsa/keygen/messages.go index 8bcfd650..d8d8a801 100644 --- a/eddsa/keygen/messages.go +++ b/eddsa/keygen/messages.go @@ -7,10 +7,9 @@ package keygen import ( + "crypto/elliptic" "math/big" - "github.com/golang/protobuf/proto" - "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" cmt "github.com/binance-chain/tss-lib/crypto/commitments" @@ -31,12 +30,6 @@ var ( } ) -func init() { - proto.RegisterType((*KGRound1Message)(nil), tss.EDDSAProtoNamePrefix+"keygen.KGRound1Message") - proto.RegisterType((*KGRound2Message1)(nil), tss.EDDSAProtoNamePrefix+"keygen.KGRound2Message1") - proto.RegisterType((*KGRound2Message2)(nil), tss.EDDSAProtoNamePrefix+"keygen.KGRound2Message2") -} - // ----- // func NewKGRound1Message(from *tss.PartyID, ct cmt.HashCommitment) tss.ParsedMessage { @@ -118,9 +111,9 @@ func (m *KGRound2Message2) UnmarshalDeCommitment() []*big.Int { return cmt.NewHashDeCommitmentFromBytes(deComBzs) } -func (m *KGRound2Message2) UnmarshalZKProof() (*schnorr.ZKProof, error) { +func (m *KGRound2Message2) UnmarshalZKProof(ec elliptic.Curve) (*schnorr.ZKProof, error) { point, err := crypto.NewECPoint( - tss.EC(), + ec, new(big.Int).SetBytes(m.GetProofAlphaX()), new(big.Int).SetBytes(m.GetProofAlphaY())) if err != nil { diff --git a/eddsa/keygen/round_1.go b/eddsa/keygen/round_1.go index 049e6f6e..5e70c909 100644 --- a/eddsa/keygen/round_1.go +++ b/eddsa/keygen/round_1.go @@ -39,12 +39,12 @@ func (round *round1) Start() *tss.Error { i := Pi.Index // 1. calculate "partial" key share ui - ui := common.GetRandomPositiveInt(tss.EC().Params().N) + ui := common.GetRandomPositiveInt(round.Params().EC().Params().N) round.temp.ui = ui // 2. compute the vss shares ids := round.Parties().IDs().Keys() - vs, shares, err := vss.Create(round.Threshold(), ui, ids) + vs, shares, err := vss.Create(round.Params().EC(), round.Threshold(), ui, ids) if err != nil { return round.WrapError(err, Pi) } diff --git a/eddsa/keygen/round_3.go b/eddsa/keygen/round_3.go index 42286d1a..3aefa3fb 100644 --- a/eddsa/keygen/round_3.go +++ b/eddsa/keygen/round_3.go @@ -41,7 +41,7 @@ func (round *round3) Start() *tss.Error { share := r2msg1.UnmarshalShare() xi = new(big.Int).Add(xi, share) } - round.save.Xi = new(big.Int).Mod(xi, tss.EC().Params().N) + round.save.Xi = new(big.Int).Mod(xi, round.Params().EC().Params().N) // 2-3. Vc := make(vss.Vs, round.Threshold()+1) @@ -77,15 +77,17 @@ func (round *round3) Start() *tss.Error { ch <- vssOut{errors.New("de-commitment verify failed"), nil} return } - PjVs, err := crypto.UnFlattenECPoints(tss.EC(), flatPolyGs) + + PjVs, err := crypto.UnFlattenECPoints(round.Params().EC(), flatPolyGs) for i, PjV := range PjVs { PjVs[i] = PjV.EightInvEight() } + if err != nil { ch <- vssOut{err, nil} return } - proof, err := r2msg2.UnmarshalZKProof() + proof, err := r2msg2.UnmarshalZKProof(round.Params().EC()) if err != nil { ch <- vssOut{errors.New("failed to unmarshal schnorr proof"), nil} return @@ -101,7 +103,7 @@ func (round *round3) Start() *tss.Error { ID: round.PartyID().KeyInt(), Share: r2msg1.UnmarshalShare(), } - if ok = PjShare.Verify(round.Threshold(), PjVs); !ok { + if ok = PjShare.Verify(round.Params().EC(), round.Threshold(), PjVs); !ok { ch <- vssOut{errors.New("vss verify failed"), nil} return } @@ -159,7 +161,7 @@ func (round *round3) Start() *tss.Error { // 13-17. compute Xj for each Pj { var err error - modQ := common.ModInt(tss.EC().Params().N) + modQ := common.ModInt(round.Params().EC().Params().N) culprits := make([]*tss.PartyID, 0, len(Ps)) // who caused the error(s) bigXj := round.save.BigXj for j := 0; j < round.PartyCount(); j++ { @@ -183,7 +185,7 @@ func (round *round3) Start() *tss.Error { } // 18. compute and SAVE the EDDSA public key `y` - eddsaPubKey, err := crypto.NewECPoint(tss.EC(), Vc[0].X(), Vc[0].Y()) + eddsaPubKey, err := crypto.NewECPoint(round.Params().EC(), Vc[0].X(), Vc[0].Y()) if err != nil { return round.WrapError(errors2.Wrapf(err, "public key is not on the curve")) } diff --git a/eddsa/keygen/test_utils.go b/eddsa/keygen/test_utils.go index 5cd70d33..a4655f70 100644 --- a/eddsa/keygen/test_utils.go +++ b/eddsa/keygen/test_utils.go @@ -52,6 +52,10 @@ func LoadKeygenTestFixtures(qty int, optionalStart ...int) ([]LocalPartySaveData "could not unmarshal fixture data for party %d located at: %s", i, fixtureFilePath) } + for _, kbxj := range key.BigXj { + kbxj.SetCurve(tss.Edwards()) + } + key.EDDSAPub.SetCurve(tss.Edwards()) keys = append(keys, key) } partyIDs := make(tss.UnSortedPartyIDs, len(keys)) @@ -86,6 +90,10 @@ func LoadKeygenTestFixturesRandomSet(qty, fixtureCount int) ([]LocalPartySaveDat "could not unmarshal fixture data for party %d located at: %s", i, fixtureFilePath) } + for _, kbxj := range key.BigXj { + kbxj.SetCurve(tss.Edwards()) + } + key.EDDSAPub.SetCurve(tss.Edwards()) keys = append(keys, key) } partyIDs := make(tss.UnSortedPartyIDs, len(keys)) diff --git a/eddsa/resharing/eddsa-resharing.pb.go b/eddsa/resharing/eddsa-resharing.pb.go index b581313a..35524785 100644 --- a/eddsa/resharing/eddsa-resharing.pb.go +++ b/eddsa/resharing/eddsa-resharing.pb.go @@ -1,3 +1,9 @@ +// Copyright © 2019-2020 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. // source: eddsa-resharing.proto @@ -94,22 +100,22 @@ func (*DGRound2Message) Descriptor() ([]byte, []int) { } func (m *DGRound2Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound2Message2.Unmarshal(m, b) + return xxx_messageInfo_DGRound2Message.Unmarshal(m, b) } func (m *DGRound2Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound2Message2.Marshal(b, m, deterministic) + return xxx_messageInfo_DGRound2Message.Marshal(b, m, deterministic) } func (m *DGRound2Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound2Message2.Merge(m, src) + xxx_messageInfo_DGRound2Message.Merge(m, src) } func (m *DGRound2Message) XXX_Size() int { - return xxx_messageInfo_DGRound2Message2.Size(m) + return xxx_messageInfo_DGRound2Message.Size(m) } func (m *DGRound2Message) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound2Message2.DiscardUnknown(m) + xxx_messageInfo_DGRound2Message.DiscardUnknown(m) } -var xxx_messageInfo_DGRound2Message2 proto.InternalMessageInfo +var xxx_messageInfo_DGRound2Message proto.InternalMessageInfo // // The Round 3 data is sent to peers of the New Committee in this message. @@ -227,28 +233,29 @@ func (m *DGRound4Message) XXX_DiscardUnknown() { var xxx_messageInfo_DGRound4Message proto.InternalMessageInfo func init() { - proto.RegisterType((*DGRound1Message)(nil), "DGRound1Message") - proto.RegisterType((*DGRound2Message)(nil), "DGRound2Message") - proto.RegisterType((*DGRound3Message1)(nil), "DGRound3Message1") - proto.RegisterType((*DGRound3Message2)(nil), "DGRound3Message2") - proto.RegisterType((*DGRound4Message)(nil), "DGRound4Message") + proto.RegisterType((*DGRound1Message)(nil), "binance.tsslib.eddsa.resharing.DGRound1Message") + proto.RegisterType((*DGRound2Message)(nil), "binance.tsslib.eddsa.resharing.DGRound2Message") + proto.RegisterType((*DGRound3Message1)(nil), "binance.tsslib.eddsa.resharing.DGRound3Message1") + proto.RegisterType((*DGRound3Message2)(nil), "binance.tsslib.eddsa.resharing.DGRound3Message2") + proto.RegisterType((*DGRound4Message)(nil), "binance.tsslib.eddsa.resharing.DGRound4Message") } func init() { proto.RegisterFile("eddsa-resharing.proto", fileDescriptor_d6ac4d7ec55a8fe1) } var fileDescriptor_d6ac4d7ec55a8fe1 = []byte{ - // 203 bytes of a gzipped FileDescriptorProto + // 222 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4d, 0x4d, 0x49, 0x29, 0x4e, 0xd4, 0x2d, 0x4a, 0x2d, 0xce, 0x48, 0x2c, 0xca, 0xcc, 0x4b, 0xd7, 0x2b, 0x28, 0xca, 0x2f, - 0xc9, 0x57, 0x2a, 0xe1, 0xe2, 0x77, 0x71, 0x0f, 0xca, 0x2f, 0xcd, 0x4b, 0x31, 0xf4, 0x4d, 0x2d, - 0x2e, 0x4e, 0x4c, 0x4f, 0x15, 0x92, 0xe3, 0xe2, 0x06, 0xab, 0x8d, 0x2f, 0x28, 0x4d, 0x8a, 0xaf, - 0x90, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x09, 0xe2, 0x04, 0x0b, 0x05, 0x94, 0x26, 0x45, 0xa0, 0xca, - 0x57, 0x4a, 0x30, 0xa1, 0xca, 0x47, 0x0a, 0x29, 0x72, 0xf1, 0x94, 0xc5, 0x27, 0xe7, 0xe7, 0xe6, - 0x66, 0x96, 0xe4, 0xa6, 0xe6, 0x95, 0x48, 0x30, 0x83, 0x15, 0x70, 0x97, 0x39, 0xc3, 0x85, 0x94, - 0x84, 0xb8, 0x04, 0xa0, 0xb6, 0x1a, 0x41, 0x6d, 0x35, 0x52, 0xd2, 0x80, 0x8b, 0x19, 0x43, 0xc5, - 0x0c, 0x85, 0x44, 0xb8, 0x58, 0x41, 0xce, 0x4d, 0x85, 0x3a, 0x02, 0xc2, 0x51, 0xb2, 0xc4, 0x50, - 0x69, 0x24, 0xa4, 0xca, 0xc5, 0x57, 0x16, 0x9f, 0x92, 0x8a, 0x64, 0x2d, 0xa3, 0x02, 0xb3, 0x06, - 0x4f, 0x10, 0x6f, 0x99, 0x0b, 0x92, 0xa0, 0x92, 0x20, 0xdc, 0xbb, 0x26, 0x50, 0xad, 0x4e, 0x82, - 0x51, 0xfc, 0x60, 0xb7, 0xeb, 0xc3, 0x83, 0x26, 0x89, 0x0d, 0x1c, 0x36, 0xc6, 0x80, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x76, 0xdf, 0xde, 0x85, 0x34, 0x01, 0x00, 0x00, + 0xc9, 0x17, 0x92, 0x4b, 0xca, 0xcc, 0x4b, 0xcc, 0x4b, 0x4e, 0xd5, 0x2b, 0x29, 0x2e, 0xce, 0xc9, + 0x4c, 0xd2, 0x03, 0xab, 0xd2, 0x83, 0xab, 0x52, 0x2a, 0xe1, 0xe2, 0x77, 0x71, 0x0f, 0xca, 0x2f, + 0xcd, 0x4b, 0x31, 0xf4, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c, 0x4f, 0x15, 0x92, 0xe3, 0xe2, 0x06, 0xab, + 0x8a, 0x2f, 0x28, 0x4d, 0x8a, 0xaf, 0x90, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x09, 0xe2, 0x04, 0x0b, + 0x05, 0x94, 0x26, 0x45, 0xa0, 0xca, 0x57, 0x4a, 0x30, 0xa1, 0xca, 0x47, 0x0a, 0x29, 0x72, 0xf1, + 0x94, 0xc5, 0x27, 0xe7, 0xe7, 0xe6, 0x66, 0x96, 0xe4, 0xa6, 0xe6, 0x95, 0x48, 0x30, 0x83, 0x15, + 0x70, 0x97, 0x39, 0xc3, 0x85, 0x94, 0x04, 0xe1, 0xb6, 0x1a, 0x41, 0x6d, 0x55, 0xd2, 0xe0, 0x12, + 0x80, 0x0a, 0x19, 0x43, 0x85, 0x0c, 0x85, 0x44, 0xb8, 0x58, 0x41, 0xee, 0x4c, 0x85, 0xba, 0x01, + 0xc2, 0x51, 0xb2, 0xc4, 0x50, 0x69, 0x24, 0xa4, 0xca, 0xc5, 0x57, 0x16, 0x9f, 0x92, 0x8a, 0x64, + 0x2b, 0xa3, 0x02, 0xb3, 0x06, 0x4f, 0x10, 0x6f, 0x99, 0x0b, 0x92, 0x20, 0x92, 0xbd, 0x26, 0x50, + 0xad, 0x4e, 0x82, 0x51, 0xfc, 0x60, 0xa7, 0xeb, 0xc3, 0xc3, 0x24, 0x89, 0x0d, 0x1c, 0x74, 0xc6, + 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x54, 0x3e, 0x50, 0x06, 0x53, 0x01, 0x00, 0x00, } diff --git a/eddsa/resharing/local_party_test.go b/eddsa/resharing/local_party_test.go index 3a33db37..7dfe903c 100644 --- a/eddsa/resharing/local_party_test.go +++ b/eddsa/resharing/local_party_test.go @@ -33,13 +33,14 @@ func setUp(level string) { if err := log.SetLogLevel("tss-lib", level); err != nil { panic(err) } + + // only for test + tss.SetCurve(tss.Edwards()) } func TestE2EConcurrent(t *testing.T) { setUp("info") - tss.SetCurve(edwards.Edwards()) - threshold, newThreshold := testThreshold, testThreshold // PHASE: load keygen fixtures @@ -67,14 +68,14 @@ func TestE2EConcurrent(t *testing.T) { // init the old parties first for j, pID := range oldPIDs { - params := tss.NewReSharingParameters(oldP2PCtx, newP2PCtx, pID, testParticipants, threshold, newPCount, newThreshold) + params := tss.NewReSharingParameters(tss.Edwards(), oldP2PCtx, newP2PCtx, pID, testParticipants, threshold, newPCount, newThreshold) P := NewLocalParty(params, oldKeys[j], outCh, endCh).(*LocalParty) // discard old key data oldCommittee = append(oldCommittee, P) } // init the new parties for _, pID := range newPIDs { - params := tss.NewReSharingParameters(oldP2PCtx, newP2PCtx, pID, testParticipants, threshold, newPCount, newThreshold) + params := tss.NewReSharingParameters(tss.Edwards(), oldP2PCtx, newP2PCtx, pID, testParticipants, threshold, newPCount, newThreshold) save := keygen.NewLocalPartySaveData(newPCount) P := NewLocalParty(params, save, outCh, endCh).(*LocalParty) newCommittee = append(newCommittee, P) @@ -141,7 +142,7 @@ func TestE2EConcurrent(t *testing.T) { for j, key := range newKeys { // xj test: BigXj == xj*G xj := key.Xi - gXj := crypto.ScalarBaseMult(tss.EC(), xj) + gXj := crypto.ScalarBaseMult(tss.Edwards(), xj) BigXj := key.BigXj[j] assert.True(t, BigXj.Equals(gXj), "ensure BigX_j == g^x_j") } @@ -163,7 +164,7 @@ signing: signEndCh := make(chan common.SignatureData, len(signPIDs)) for j, signPID := range signPIDs { - params := tss.NewParameters(signP2pCtx, signPID, len(signPIDs), newThreshold) + params := tss.NewParameters(tss.Edwards(), signP2pCtx, signPID, len(signPIDs), newThreshold) P := signing.NewLocalParty(big.NewInt(42), params, signKeys[j], signOutCh, signEndCh).(*signing.LocalParty) signParties = append(signParties, P) go func(P *signing.LocalParty) { @@ -205,7 +206,7 @@ signing: // BEGIN EDDSA verify pkX, pkY := signKeys[0].EDDSAPub.X(), signKeys[0].EDDSAPub.Y() pk := edwards.PublicKey{ - Curve: tss.EC(), + Curve: tss.Edwards(), X: pkX, Y: pkY, } diff --git a/eddsa/resharing/messages.go b/eddsa/resharing/messages.go index ccc7733c..a1e79f69 100644 --- a/eddsa/resharing/messages.go +++ b/eddsa/resharing/messages.go @@ -7,10 +7,9 @@ package resharing import ( + "crypto/elliptic" "math/big" - "github.com/golang/protobuf/proto" - "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" cmt "github.com/binance-chain/tss-lib/crypto/commitments" @@ -30,14 +29,6 @@ var ( } ) -func init() { - proto.RegisterType((*DGRound1Message)(nil), tss.EDDSAProtoNamePrefix+"resharing.DGRound1Message") - proto.RegisterType((*DGRound2Message)(nil), tss.EDDSAProtoNamePrefix+"resharing.DGRound2Message") - proto.RegisterType((*DGRound3Message1)(nil), tss.EDDSAProtoNamePrefix+"resharing.DGRound3Message1") - proto.RegisterType((*DGRound3Message2)(nil), tss.EDDSAProtoNamePrefix+"resharing.DGRound3Message2") - proto.RegisterType((*DGRound4Message)(nil), tss.EDDSAProtoNamePrefix+"resharing.DGRound4Message") -} - // ----- // func NewDGRound1Message( @@ -68,9 +59,9 @@ func (m *DGRound1Message) ValidateBasic() bool { common.NonEmptyBytes(m.VCommitment) } -func (m *DGRound1Message) UnmarshalEDDSAPub() (*crypto.ECPoint, error) { +func (m *DGRound1Message) UnmarshalEDDSAPub(ec elliptic.Curve) (*crypto.ECPoint, error) { return crypto.NewECPoint( - tss.EC(), + ec, new(big.Int).SetBytes(m.EddsaPubX), new(big.Int).SetBytes(m.EddsaPubY)) } diff --git a/eddsa/resharing/round_1_old_step_1.go b/eddsa/resharing/round_1_old_step_1.go index 56fb4351..f14bc869 100644 --- a/eddsa/resharing/round_1_old_step_1.go +++ b/eddsa/resharing/round_1_old_step_1.go @@ -47,10 +47,10 @@ func (round *round1) Start() *tss.Error { return round.WrapError(fmt.Errorf("t+1=%d is not satisfied by the key count of %d", round.Threshold()+1, len(ks)), round.PartyID()) } newKs := round.NewParties().IDs().Keys() - wi := signing.PrepareForSigning(i, len(round.OldParties().IDs()), xi, ks) + wi := signing.PrepareForSigning(round.Params().EC(), i, len(round.OldParties().IDs()), xi, ks) // 2. - vi, shares, err := vss.Create(round.NewThreshold(), wi, newKs) + vi, shares, err := vss.Create(round.Params().EC(), round.NewThreshold(), wi, newKs) if err != nil { return round.WrapError(err, round.PartyID()) } @@ -101,7 +101,7 @@ func (round *round1) Update() (bool, *tss.Error) { // save the eddsa pub received from the old committee r1msg := round.temp.dgRound1Messages[0].Content().(*DGRound1Message) - candidate, err := r1msg.UnmarshalEDDSAPub() + candidate, err := r1msg.UnmarshalEDDSAPub(round.Params().EC()) if err != nil { return false, round.WrapError(errors.New("unable to unmarshal the eddsa pub key"), msg.GetFrom()) } diff --git a/eddsa/resharing/round_4_new_step_2.go b/eddsa/resharing/round_4_new_step_2.go index ea2c9c1b..e033ad15 100644 --- a/eddsa/resharing/round_4_new_step_2.go +++ b/eddsa/resharing/round_4_new_step_2.go @@ -40,7 +40,7 @@ func (round *round4) Start() *tss.Error { newXi := big.NewInt(0) // 2-8. - modQ := common.ModInt(tss.EC().Params().N) + modQ := common.ModInt(round.Params().EC().Params().N) vjc := make([][]*crypto.ECPoint, len(round.OldParties().IDs())) for j := 0; j <= len(vjc)-1; j++ { // P1..P_t+1. Ps are indexed from 0 here r1msg := round.temp.dgRound1Messages[j].Content().(*DGRound1Message) @@ -55,7 +55,7 @@ func (round *round4) Start() *tss.Error { // TODO collect culprits and return a list of them as per convention return round.WrapError(errors.New("de-commitment of v_j0..v_jt failed"), round.Parties().IDs()[j]) } - vj, err := crypto.UnFlattenECPoints(tss.EC(), flatVs) + vj, err := crypto.UnFlattenECPoints(round.Params().EC(), flatVs) if err != nil { return round.WrapError(err, round.Parties().IDs()[j]) } @@ -72,7 +72,7 @@ func (round *round4) Start() *tss.Error { ID: round.PartyID().KeyInt(), Share: new(big.Int).SetBytes(r3msg1.Share), } - if ok := sharej.Verify(round.NewThreshold(), vj); !ok { + if ok := sharej.Verify(round.Params().EC(), round.NewThreshold(), vj); !ok { return round.WrapError(errors.New("share from old committee did not pass Verify()"), round.Parties().IDs()[j]) } diff --git a/eddsa/signing/eddsa-signing.pb.go b/eddsa/signing/eddsa-signing.pb.go index 62a772a8..f24cc787 100644 --- a/eddsa/signing/eddsa-signing.pb.go +++ b/eddsa/signing/eddsa-signing.pb.go @@ -1,3 +1,9 @@ +// Copyright © 2019-2020 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. // source: eddsa-signing.proto @@ -5,8 +11,9 @@ package signing import ( fmt "fmt" - proto "github.com/golang/protobuf/proto" math "math" + + proto "github.com/golang/protobuf/proto" ) // Reference imports to suppress errors if they are not otherwise used. @@ -168,26 +175,27 @@ func (m *SignRound3Message) GetS() []byte { } func init() { - proto.RegisterType((*SignRound1Message)(nil), "SignRound1Message") - proto.RegisterType((*SignRound2Message)(nil), "SignRound2Message") - proto.RegisterType((*SignRound3Message)(nil), "SignRound3Message") + proto.RegisterType((*SignRound1Message)(nil), "binance.tsslib.eddsa.signing.SignRound1Message") + proto.RegisterType((*SignRound2Message)(nil), "binance.tsslib.eddsa.signing.SignRound2Message") + proto.RegisterType((*SignRound3Message)(nil), "binance.tsslib.eddsa.signing.SignRound3Message") } func init() { proto.RegisterFile("eddsa-signing.proto", fileDescriptor_cf83f80fc7454980) } var fileDescriptor_cf83f80fc7454980 = []byte{ - // 197 bytes of a gzipped FileDescriptorProto + // 219 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4e, 0x4d, 0x49, 0x29, - 0x4e, 0xd4, 0x2d, 0xce, 0x4c, 0xcf, 0xcb, 0xcc, 0x4b, 0xd7, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x57, - 0x32, 0xe6, 0x12, 0x0c, 0xce, 0x4c, 0xcf, 0x0b, 0xca, 0x2f, 0xcd, 0x4b, 0x31, 0xf4, 0x4d, 0x2d, - 0x2e, 0x4e, 0x4c, 0x4f, 0x15, 0x92, 0xe3, 0xe2, 0x4a, 0xce, 0xcf, 0xcd, 0xcd, 0x2c, 0xc9, 0x4d, - 0xcd, 0x2b, 0x91, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x09, 0x42, 0x12, 0x51, 0x9a, 0xc9, 0x88, 0xa4, - 0xcb, 0x08, 0xa6, 0x4b, 0x99, 0x8b, 0x37, 0x25, 0x35, 0x1e, 0x45, 0x23, 0xb3, 0x06, 0x4f, 0x10, - 0x4f, 0x4a, 0xaa, 0x33, 0x5c, 0x4c, 0x48, 0x89, 0x8b, 0xb7, 0xa0, 0x28, 0x3f, 0x3f, 0x2d, 0x3e, - 0x31, 0xa7, 0x20, 0x23, 0x31, 0xbe, 0x42, 0x82, 0x09, 0x6c, 0x3a, 0x37, 0x58, 0xd0, 0x11, 0x24, - 0x16, 0x81, 0xae, 0xa6, 0x52, 0x82, 0x19, 0x5d, 0x4d, 0xa4, 0x90, 0x38, 0x17, 0x3b, 0x44, 0x4d, - 0x89, 0x04, 0x0b, 0x58, 0x96, 0x0d, 0xcc, 0x0d, 0x51, 0x52, 0x44, 0x72, 0x9a, 0x31, 0xcc, 0x69, - 0x3c, 0x5c, 0x8c, 0xc5, 0x50, 0x7f, 0x30, 0x16, 0x3b, 0xf1, 0x47, 0xf1, 0x82, 0x83, 0x42, 0x1f, - 0x1a, 0x14, 0x49, 0x6c, 0xe0, 0xb0, 0x30, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x0a, 0x36, 0x85, - 0xc1, 0x22, 0x01, 0x00, 0x00, + 0x4e, 0xd4, 0x2d, 0xce, 0x4c, 0xcf, 0xcb, 0xcc, 0x4b, 0xd7, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, + 0x92, 0x49, 0xca, 0xcc, 0x4b, 0xcc, 0x4b, 0x4e, 0xd5, 0x2b, 0x29, 0x2e, 0xce, 0xc9, 0x4c, 0xd2, + 0x03, 0xab, 0xd1, 0x83, 0xaa, 0x51, 0x32, 0xe6, 0x12, 0x0c, 0xce, 0x4c, 0xcf, 0x0b, 0xca, 0x2f, + 0xcd, 0x4b, 0x31, 0xf4, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c, 0x4f, 0x15, 0x92, 0xe3, 0xe2, 0x4a, 0xce, + 0xcf, 0xcd, 0xcd, 0x2c, 0xc9, 0x4d, 0xcd, 0x2b, 0x91, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x09, 0x42, + 0x12, 0x51, 0x9a, 0xc9, 0x88, 0xa4, 0xcb, 0x08, 0xa6, 0x4b, 0x99, 0x8b, 0x37, 0x25, 0x35, 0x1e, + 0x45, 0x23, 0xb3, 0x06, 0x4f, 0x10, 0x4f, 0x4a, 0xaa, 0x33, 0x5c, 0x4c, 0x48, 0x89, 0x8b, 0xb7, + 0xa0, 0x28, 0x3f, 0x3f, 0x2d, 0x3e, 0x31, 0xa7, 0x20, 0x23, 0x31, 0xbe, 0x42, 0x82, 0x09, 0x6c, + 0x3a, 0x37, 0x58, 0xd0, 0x11, 0x24, 0x16, 0x81, 0xae, 0xa6, 0x52, 0x82, 0x19, 0x5d, 0x4d, 0xa4, + 0x90, 0x38, 0x17, 0x3b, 0x44, 0x4d, 0x89, 0x04, 0x0b, 0x58, 0x96, 0x0d, 0xcc, 0x0d, 0x51, 0x52, + 0x44, 0x72, 0x9a, 0x31, 0xcc, 0x69, 0x3c, 0x5c, 0x8c, 0xc5, 0x50, 0x7f, 0x30, 0x16, 0x3b, 0xf1, + 0x47, 0xf1, 0x82, 0x03, 0x41, 0x1f, 0x1a, 0x08, 0x49, 0x6c, 0xe0, 0x90, 0x32, 0x06, 0x04, 0x00, + 0x00, 0xff, 0xff, 0x26, 0xfd, 0x9b, 0xd6, 0x40, 0x01, 0x00, 0x00, } diff --git a/eddsa/signing/finalize.go b/eddsa/signing/finalize.go index 87c9e34b..9463d532 100644 --- a/eddsa/signing/finalize.go +++ b/eddsa/signing/finalize.go @@ -46,7 +46,7 @@ func (round *finalization) Start() *tss.Error { round.data.M = round.temp.m.Bytes() pk := edwards.PublicKey{ - Curve: tss.EC(), + Curve: round.Params().EC(), X: round.key.EDDSAPub.X(), Y: round.key.EDDSAPub.Y(), } diff --git a/eddsa/signing/local_party_test.go b/eddsa/signing/local_party_test.go index 36303470..bfc3cc77 100644 --- a/eddsa/signing/local_party_test.go +++ b/eddsa/signing/local_party_test.go @@ -32,13 +32,14 @@ func setUp(level string) { if err := log.SetLogLevel("tss-lib", level); err != nil { panic(err) } + + // only for test + tss.SetCurve(tss.Edwards()) } func TestE2EConcurrent(t *testing.T) { setUp("info") - tss.SetCurve(edwards.Edwards()) - threshold := testThreshold // PHASE: load keygen fixtures @@ -61,7 +62,7 @@ func TestE2EConcurrent(t *testing.T) { msg := big.NewInt(200) // init the parties for i := 0; i < len(signPIDs); i++ { - params := tss.NewParameters(p2pCtx, signPIDs[i], len(signPIDs), threshold) + params := tss.NewParameters(tss.Edwards(), p2pCtx, signPIDs[i], len(signPIDs), threshold) P := NewLocalParty(msg, params, keys[i], outCh, endCh).(*LocalParty) parties = append(parties, P) @@ -121,7 +122,7 @@ signing: // BEGIN EDDSA verify pkX, pkY := keys[0].EDDSAPub.X(), keys[0].EDDSAPub.Y() pk := edwards.PublicKey{ - Curve: tss.EC(), + Curve: tss.Edwards(), X: pkX, Y: pkY, } diff --git a/eddsa/signing/messages.go b/eddsa/signing/messages.go index 4cf6070b..ed45642d 100644 --- a/eddsa/signing/messages.go +++ b/eddsa/signing/messages.go @@ -7,10 +7,9 @@ package signing import ( + "crypto/elliptic" "math/big" - "github.com/golang/protobuf/proto" - "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" cmt "github.com/binance-chain/tss-lib/crypto/commitments" @@ -30,12 +29,6 @@ var ( } ) -func init() { - proto.RegisterType((*SignRound1Message)(nil), tss.EDDSAProtoNamePrefix+"signing.SignRound1Message") - proto.RegisterType((*SignRound2Message)(nil), tss.EDDSAProtoNamePrefix+"signing.SignRound2Message") - proto.RegisterType((*SignRound3Message)(nil), tss.EDDSAProtoNamePrefix+"signing.SignRound3Message") -} - // ----- // func NewSignRound1Message( @@ -97,9 +90,9 @@ func (m *SignRound2Message) UnmarshalDeCommitment() []*big.Int { return cmt.NewHashDeCommitmentFromBytes(deComBzs) } -func (m *SignRound2Message) UnmarshalZKProof() (*schnorr.ZKProof, error) { +func (m *SignRound2Message) UnmarshalZKProof(ec elliptic.Curve) (*schnorr.ZKProof, error) { point, err := crypto.NewECPoint( - tss.EC(), + ec, new(big.Int).SetBytes(m.GetProofAlphaX()), new(big.Int).SetBytes(m.GetProofAlphaY())) if err != nil { diff --git a/eddsa/signing/prepare.go b/eddsa/signing/prepare.go index 59981779..81923fbe 100644 --- a/eddsa/signing/prepare.go +++ b/eddsa/signing/prepare.go @@ -7,16 +7,16 @@ package signing import ( + "crypto/elliptic" "fmt" "math/big" "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/tss" ) // PrepareForSigning(), Fig. 7 -func PrepareForSigning(i, pax int, xi *big.Int, ks []*big.Int) (wi *big.Int) { - modQ := common.ModInt(tss.EC().Params().N) +func PrepareForSigning(ec elliptic.Curve, i, pax int, xi *big.Int, ks []*big.Int) (wi *big.Int) { + modQ := common.ModInt(ec.Params().N) if len(ks) != pax { panic(fmt.Errorf("PrepareForSigning: len(ks) != pax (%d != %d)", len(ks), pax)) } diff --git a/eddsa/signing/round_1.go b/eddsa/signing/round_1.go index ada10ddf..c765f630 100644 --- a/eddsa/signing/round_1.go +++ b/eddsa/signing/round_1.go @@ -33,10 +33,10 @@ func (round *round1) Start() *tss.Error { round.resetOK() // 1. select ri - ri := common.GetRandomPositiveInt(tss.EC().Params().N) + ri := common.GetRandomPositiveInt(round.Params().EC().Params().N) // 2. make commitment - pointRi := crypto.ScalarBaseMult(tss.EC(), ri) + pointRi := crypto.ScalarBaseMult(round.Params().EC(), ri) cmt := commitments.NewHashCommitment(pointRi.X(), pointRi.Y()) // 3. store r1 message pieces @@ -92,7 +92,7 @@ func (round *round1) prepare() error { if round.Threshold()+1 > len(ks) { return fmt.Errorf("t+1=%d is not satisfied by the key count of %d", round.Threshold()+1, len(ks)) } - wi := PrepareForSigning(i, len(ks), xi, ks) + wi := PrepareForSigning(round.Params().EC(), i, len(ks), xi, ks) round.temp.wi = wi return nil diff --git a/eddsa/signing/round_3.go b/eddsa/signing/round_3.go index a42d7601..394ce8e5 100644 --- a/eddsa/signing/round_3.go +++ b/eddsa/signing/round_3.go @@ -49,12 +49,12 @@ func (round *round3) Start() *tss.Error { return round.WrapError(errors.New("length of de-commitment should be 2")) } - Rj, err := crypto.NewECPoint(tss.EC(), coordinates[0], coordinates[1]) + Rj, err := crypto.NewECPoint(round.Params().EC(), coordinates[0], coordinates[1]) Rj = Rj.EightInvEight() if err != nil { return round.WrapError(errors.Wrapf(err, "NewECPoint(Rj)"), Pj) } - proof, err := r2msg.UnmarshalZKProof() + proof, err := r2msg.UnmarshalZKProof(round.Params().EC()) if err != nil { return round.WrapError(errors.New("failed to unmarshal Rj proof"), Pj) } @@ -63,7 +63,7 @@ func (round *round3) Start() *tss.Error { return round.WrapError(errors.New("failed to prove Rj"), Pj) } - extendedRj := ecPointToExtendedElement(Rj.X(), Rj.Y()) + extendedRj := ecPointToExtendedElement(round.Params().EC(), Rj.X(), Rj.Y()) R = addExtendedElements(R, extendedRj) } diff --git a/eddsa/signing/utils.go b/eddsa/signing/utils.go index 8dd58a28..2cda9b6d 100644 --- a/eddsa/signing/utils.go +++ b/eddsa/signing/utils.go @@ -7,12 +7,12 @@ package signing import ( + "crypto/elliptic" "math/big" "github.com/agl/ed25519/edwards25519" "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/tss" ) func encodedBytesToBigInt(s *[32]byte) *big.Int { @@ -100,11 +100,11 @@ func addExtendedElements(p, q edwards25519.ExtendedGroupElement) edwards25519.Ex return result } -func ecPointToExtendedElement(x *big.Int, y *big.Int) edwards25519.ExtendedGroupElement { +func ecPointToExtendedElement(ec elliptic.Curve, x *big.Int, y *big.Int) edwards25519.ExtendedGroupElement { encodedXBytes := bigIntToEncodedBytes(x) encodedYBytes := bigIntToEncodedBytes(y) - z := common.GetRandomPositiveInt(tss.EC().Params().N) + z := common.GetRandomPositiveInt(ec.Params().N) encodedZBytes := bigIntToEncodedBytes(z) var fx, fy, fxy edwards25519.FieldElement diff --git a/go.mod b/go.mod index b38587a1..8ca503e3 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ require ( github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8 github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0 - github.com/golang/protobuf v1.3.2 + github.com/golang/protobuf v1.5.0 github.com/hashicorp/go-multierror v1.0.0 github.com/ipfs/go-log v0.0.1 github.com/mattn/go-colorable v0.1.2 // indirect @@ -17,6 +17,7 @@ require ( github.com/pkg/errors v0.8.1 github.com/stretchr/testify v1.3.0 golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7 // indirect + google.golang.org/protobuf v1.27.1 ) replace github.com/agl/ed25519 => github.com/binance-chain/edwards25519 v0.0.0-20200305024217-f36fc4b53d43 diff --git a/go.sum b/go.sum index c7cbf922..08a02d17 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,3 @@ -bou.ke/monkey v1.0.1 h1:zEMLInw9xvNakzUUPjfS4Ds6jYPqCFx3m7bRmG5NH2U= bou.ke/monkey v1.0.1/go.mod h1:FgHuK96Rv2Nlf+0u1OOVDpCMdsWyOFmeeketDHE7LIg= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/binance-chain/edwards25519 v0.0.0-20200305024217-f36fc4b53d43 h1:Vkf7rtHx8uHx8gDfkQaCdVfc+gfrF9v6sR6xJy7RXNg= @@ -24,6 +23,9 @@ github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zV github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= @@ -48,11 +50,8 @@ github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1Cpa github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95 h1:+OLn68pqasWca0z5ryit9KGfp3sUsW4Lqg32iRMJyzs= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= -github.com/otiai10/mint v1.2.4 h1:DxYL0itZyPaR5Z9HILdxSoHx+gNs6Yx+neOGS3IVUk0= github.com/otiai10/mint v1.2.4/go.mod h1:d+b7n/0R3tdyUYYylALXpWQ/kTN+QobSq/4SRGBkR3M= -github.com/otiai10/primes v0.0.0-20180210170552-f6d2a1ba97c4 h1:blMAhTXF6uL1+e3eVSajjLT43Cc0U8mU1gcigbbolJM= github.com/otiai10/primes v0.0.0-20180210170552-f6d2a1ba97c4/go.mod h1:UmSP7QeU3XmAdGu5+dnrTJqjBc+IscpVZkQzk473cjM= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -69,10 +68,13 @@ golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7 h1:LepdCS8Gf/MVejFIt8lsiexZATdoGVyp5bcyS+rYoUI= golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= diff --git a/protob/ecdsa-keygen.proto b/protob/ecdsa-keygen.proto index c00f2ef6..fcca940c 100644 --- a/protob/ecdsa-keygen.proto +++ b/protob/ecdsa-keygen.proto @@ -5,7 +5,7 @@ // file LICENSE at the root of the source code distribution tree. syntax = "proto3"; - +package binance.tsslib.ecdsa.keygen; option go_package = "ecdsa/keygen"; /* diff --git a/protob/ecdsa-resharing.proto b/protob/ecdsa-resharing.proto index 51e3bff3..deca60bb 100644 --- a/protob/ecdsa-resharing.proto +++ b/protob/ecdsa-resharing.proto @@ -5,7 +5,7 @@ // file LICENSE at the root of the source code distribution tree. syntax = "proto3"; - +package binance.tsslib.ecdsa.resharing; option go_package = "ecdsa/resharing"; /* diff --git a/protob/ecdsa-signing.proto b/protob/ecdsa-signing.proto index ef23f170..08591c03 100644 --- a/protob/ecdsa-signing.proto +++ b/protob/ecdsa-signing.proto @@ -5,7 +5,7 @@ // file LICENSE at the root of the source code distribution tree. syntax = "proto3"; - +package binance.tsslib.ecdsa.signing; option go_package = "ecdsa/signing"; /* diff --git a/protob/eddsa-keygen.proto b/protob/eddsa-keygen.proto index 52d9f530..199d0502 100644 --- a/protob/eddsa-keygen.proto +++ b/protob/eddsa-keygen.proto @@ -5,7 +5,7 @@ // file LICENSE at the root of the source code distribution tree. syntax = "proto3"; - +package binance.tsslib.eddsa.keygen; option go_package = "eddsa/keygen"; /* diff --git a/protob/eddsa-resharing.proto b/protob/eddsa-resharing.proto index 0ad299f5..3b646cba 100644 --- a/protob/eddsa-resharing.proto +++ b/protob/eddsa-resharing.proto @@ -5,7 +5,7 @@ // file LICENSE at the root of the source code distribution tree. syntax = "proto3"; - +package binance.tsslib.eddsa.resharing; option go_package = "eddsa/resharing"; /* @@ -20,7 +20,7 @@ message DGRound1Message { /* * The Round 2 "ACK" is broadcast to peers of the Old Committee in this message. */ -message DGRound2Message2 { +message DGRound2Message { } /* diff --git a/protob/eddsa-signing.proto b/protob/eddsa-signing.proto index eb795891..b018279e 100644 --- a/protob/eddsa-signing.proto +++ b/protob/eddsa-signing.proto @@ -5,7 +5,7 @@ // file LICENSE at the root of the source code distribution tree. syntax = "proto3"; - +package binance.tsslib.eddsa.signing; option go_package = "eddsa/signing"; /* diff --git a/protob/message.proto b/protob/message.proto index b1f3ce71..707bf039 100644 --- a/protob/message.proto +++ b/protob/message.proto @@ -5,7 +5,7 @@ // file LICENSE at the root of the source code distribution tree. syntax = "proto3"; - +package binance.tsslib; option go_package = "./tss"; import "google/protobuf/any.proto"; diff --git a/protob/signature.proto b/protob/signature.proto index 8b58b42a..2f7538f1 100644 --- a/protob/signature.proto +++ b/protob/signature.proto @@ -6,7 +6,8 @@ syntax = "proto3"; -option go_package = "./common"; +package binance.tsslib; +option go_package = "common"; /* * Container for output signatures, mostly used for marshalling this data structure to a mobile app diff --git a/tss/curve.go b/tss/curve.go index 1aded0d2..48637c17 100644 --- a/tss/curve.go +++ b/tss/curve.go @@ -9,17 +9,55 @@ package tss import ( "crypto/elliptic" "errors" + "reflect" s256k1 "github.com/btcsuite/btcd/btcec" + "github.com/decred/dcrd/dcrec/edwards/v2" +) + +type CurveName string + +const ( + Secp256k1 CurveName = "secp256k1" + Ed25519 CurveName = "ed25519" ) var ( ec elliptic.Curve + registry map[CurveName]elliptic.Curve ) // Init default curve (secp256k1) func init() { ec = s256k1.S256() + + registry = make(map[CurveName]elliptic.Curve) + registry[Secp256k1]=s256k1.S256() + registry[Ed25519]=edwards.Edwards() +} + +func RegisterCurve(name CurveName, curve elliptic.Curve) { + registry[name]=curve +} + +// return curve, exist(bool) +func GetCurveByName(name CurveName) (elliptic.Curve, bool) { + if val, exist := registry[name]; exist { + return val, true + } + + return nil, false +} + +// return name, exist(bool) +func GetCurveName(curve elliptic.Curve) (CurveName, bool) { + for name, e := range registry { + if reflect.TypeOf(curve) == reflect.TypeOf(e) { + return name, true + } + } + + return "", false } // EC returns the current elliptic curve in use. The default is secp256k1 @@ -28,9 +66,19 @@ func EC() elliptic.Curve { } // SetCurve sets the curve used by TSS. Must be called before Start. The default is secp256k1 +// Deprecated func SetCurve(curve elliptic.Curve) { if curve == nil { panic(errors.New("SetCurve received a nil curve")) } ec = curve } + +// secp256k1 +func S256() elliptic.Curve { + return s256k1.S256() +} + +func Edwards() elliptic.Curve { + return edwards.Edwards() +} diff --git a/tss/message.pb.go b/tss/message.pb.go index 8bc51645..01ee24b9 100644 --- a/tss/message.pb.go +++ b/tss/message.pb.go @@ -1,13 +1,20 @@ +// Copyright © 2019-2020 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. -// source: protob/message.proto +// source: message.proto package tss import ( fmt "fmt" - proto "github.com/golang/protobuf/proto" - any "github.com/golang/protobuf/ptypes/any" math "math" + + proto "github.com/golang/protobuf/proto" + anypb "google.golang.org/protobuf/types/known/anypb" ) // Reference imports to suppress errors if they are not otherwise used. @@ -37,17 +44,17 @@ type MessageWrapper struct { // This field is actually what is sent through the wire and consumed on the other end by UpdateFromBytes. // An Any contains an arbitrary serialized message as bytes, along with a URL that // acts as a globally unique identifier for and resolves to that message's type. - Message *any.Any `protobuf:"bytes,10,opt,name=message,proto3" json:"message,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Message *anypb.Any `protobuf:"bytes,10,opt,name=message,proto3" json:"message,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *MessageWrapper) Reset() { *m = MessageWrapper{} } func (m *MessageWrapper) String() string { return proto.CompactTextString(m) } func (*MessageWrapper) ProtoMessage() {} func (*MessageWrapper) Descriptor() ([]byte, []int) { - return fileDescriptor_5be430ad0e7f3d12, []int{0} + return fileDescriptor_33c57e4bae7b9afd, []int{0} } func (m *MessageWrapper) XXX_Unmarshal(b []byte) error { @@ -103,7 +110,7 @@ func (m *MessageWrapper) GetTo() []*MessageWrapper_PartyID { return nil } -func (m *MessageWrapper) GetMessage() *any.Any { +func (m *MessageWrapper) GetMessage() *anypb.Any { if m != nil { return m.Message } @@ -126,7 +133,7 @@ func (m *MessageWrapper_PartyID) Reset() { *m = MessageWrapper_PartyID{} func (m *MessageWrapper_PartyID) String() string { return proto.CompactTextString(m) } func (*MessageWrapper_PartyID) ProtoMessage() {} func (*MessageWrapper_PartyID) Descriptor() ([]byte, []int) { - return fileDescriptor_5be430ad0e7f3d12, []int{0, 0} + return fileDescriptor_33c57e4bae7b9afd, []int{0, 0} } func (m *MessageWrapper_PartyID) XXX_Unmarshal(b []byte) error { @@ -169,31 +176,32 @@ func (m *MessageWrapper_PartyID) GetKey() []byte { } func init() { - proto.RegisterType((*MessageWrapper)(nil), "MessageWrapper") - proto.RegisterType((*MessageWrapper_PartyID)(nil), "MessageWrapper.PartyID") -} - -func init() { proto.RegisterFile("protob/message.proto", fileDescriptor_5be430ad0e7f3d12) } - -var fileDescriptor_5be430ad0e7f3d12 = []byte{ - // 297 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x4f, 0x4b, 0x33, 0x31, - 0x10, 0x87, 0x69, 0xda, 0xbe, 0xfb, 0x76, 0x5a, 0x4a, 0x89, 0x85, 0xc6, 0xe2, 0xa1, 0x7a, 0xb1, - 0x20, 0x66, 0x41, 0xcf, 0x1e, 0x5a, 0xf5, 0xe0, 0xc1, 0x3f, 0x04, 0x41, 0xf0, 0xb2, 0xa4, 0x4d, - 0x5a, 0x42, 0xbb, 0x99, 0x92, 0x44, 0xca, 0x7e, 0x69, 0x3f, 0x83, 0x98, 0xdd, 0xb5, 0x78, 0xf1, - 0x96, 0x99, 0x79, 0x7e, 0x99, 0xe1, 0x81, 0xe1, 0xce, 0x61, 0xc0, 0x45, 0x9a, 0x6b, 0xef, 0xe5, - 0x5a, 0xf3, 0x58, 0x8e, 0x8f, 0xd7, 0x88, 0xeb, 0xad, 0x4e, 0xcb, 0xe1, 0xc7, 0x2a, 0x95, 0xb6, - 0x28, 0x47, 0x67, 0x9f, 0x04, 0xfa, 0x8f, 0x25, 0xfc, 0xe6, 0xe4, 0x6e, 0xa7, 0x1d, 0x3d, 0x85, - 0x9e, 0xf1, 0xd9, 0xc2, 0xa1, 0x54, 0x4b, 0xe9, 0x03, 0x6b, 0x4c, 0x1a, 0xd3, 0xff, 0xa2, 0x6b, - 0xfc, 0xbc, 0x6e, 0xd1, 0x4b, 0x38, 0x32, 0x3e, 0x0b, 0x98, 0xe1, 0x56, 0x65, 0x4b, 0xcc, 0x73, - 0x13, 0x82, 0xd6, 0x8c, 0x44, 0x72, 0x60, 0xfc, 0x2b, 0x3e, 0x6f, 0xd5, 0x6d, 0xdd, 0xa7, 0x37, - 0x70, 0x72, 0xc0, 0xa5, 0x55, 0x99, 0xd5, 0xfb, 0x43, 0xcc, 0xb3, 0x76, 0xcc, 0x8d, 0xaa, 0xdc, - 0xcc, 0xaa, 0x27, 0xbd, 0xff, 0x49, 0x7b, 0x7a, 0x01, 0xad, 0x95, 0xc3, 0x9c, 0x35, 0x27, 0x8d, - 0x69, 0xf7, 0x6a, 0xc4, 0x7f, 0xdf, 0xcb, 0x5f, 0xa4, 0x0b, 0xc5, 0xc3, 0x9d, 0x88, 0x10, 0x3d, - 0x07, 0x12, 0x90, 0xb5, 0x26, 0xcd, 0xbf, 0x50, 0x12, 0x90, 0x72, 0x48, 0x2a, 0x4b, 0x0c, 0xe2, - 0xc7, 0x43, 0x5e, 0x6a, 0xe2, 0xb5, 0x26, 0x3e, 0xb3, 0x85, 0xa8, 0xa1, 0xf1, 0x3d, 0x24, 0x55, - 0x9c, 0xf6, 0x81, 0x18, 0x15, 0xbd, 0x74, 0x04, 0x31, 0x8a, 0x32, 0x48, 0x72, 0xb4, 0x66, 0xa3, - 0x5d, 0x54, 0xd0, 0x11, 0x75, 0x49, 0x07, 0xd0, 0xdc, 0xe8, 0x22, 0x5e, 0xde, 0x13, 0xdf, 0xcf, - 0x79, 0xf2, 0xde, 0xe6, 0x69, 0xf0, 0x7e, 0xf1, 0x2f, 0xae, 0xb9, 0xfe, 0x0a, 0x00, 0x00, 0xff, - 0xff, 0xac, 0xdd, 0x4e, 0x90, 0xb3, 0x01, 0x00, 0x00, + proto.RegisterType((*MessageWrapper)(nil), "binance.tsslib.MessageWrapper") + proto.RegisterType((*MessageWrapper_PartyID)(nil), "binance.tsslib.MessageWrapper.PartyID") +} + +func init() { proto.RegisterFile("message.proto", fileDescriptor_33c57e4bae7b9afd) } + +var fileDescriptor_33c57e4bae7b9afd = []byte{ + // 312 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x90, 0x4d, 0x4b, 0x2b, 0x31, + 0x14, 0x86, 0xe9, 0x4c, 0x7b, 0xe7, 0xf6, 0xb4, 0xb7, 0x94, 0x5c, 0xc1, 0x58, 0x5c, 0x54, 0x17, + 0xd2, 0x8d, 0x29, 0x28, 0xb8, 0x10, 0x5c, 0xb4, 0xea, 0xc2, 0x85, 0x1f, 0x0c, 0x82, 0xe0, 0x66, + 0xc8, 0x34, 0x69, 0x09, 0x9d, 0xc9, 0x29, 0x39, 0x91, 0x32, 0xff, 0xc1, 0x1f, 0x2d, 0xa6, 0x1d, + 0x4b, 0x97, 0xee, 0x92, 0x93, 0xf7, 0xe1, 0xe4, 0x7d, 0xe0, 0x5f, 0xa9, 0x89, 0xe4, 0x42, 0x8b, + 0x95, 0x43, 0x8f, 0xac, 0x97, 0x1b, 0x2b, 0xed, 0x4c, 0x0b, 0x4f, 0x54, 0x98, 0x7c, 0x70, 0xb4, + 0x40, 0x5c, 0x14, 0x7a, 0x1c, 0x5e, 0xf3, 0x8f, 0xf9, 0x58, 0xda, 0x6a, 0x13, 0x3d, 0xfd, 0x8c, + 0xa1, 0xf7, 0xb8, 0x81, 0xdf, 0x9c, 0x5c, 0xad, 0xb4, 0x63, 0x27, 0xd0, 0x35, 0x94, 0xe5, 0x0e, + 0xa5, 0x9a, 0x49, 0xf2, 0xbc, 0x31, 0x6c, 0x8c, 0xfe, 0xa6, 0x1d, 0x43, 0xd3, 0x7a, 0xc4, 0xce, + 0xe1, 0xbf, 0xa1, 0xcc, 0x63, 0x86, 0x85, 0xca, 0x66, 0x58, 0x96, 0xc6, 0x7b, 0xad, 0x79, 0x14, + 0x92, 0x7d, 0x43, 0xaf, 0xf8, 0x5c, 0xa8, 0xdb, 0x7a, 0xce, 0x6e, 0xe0, 0x78, 0x17, 0x97, 0x56, + 0x65, 0x56, 0xaf, 0x77, 0x18, 0xf1, 0x56, 0xe0, 0x0e, 0xb7, 0xdc, 0xc4, 0xaa, 0x27, 0xbd, 0xfe, + 0xa1, 0x89, 0x5d, 0x43, 0x73, 0xee, 0xb0, 0xe4, 0xf1, 0xb0, 0x31, 0xea, 0x5c, 0x9c, 0x89, 0xfd, + 0x76, 0x62, 0xff, 0xfb, 0xe2, 0x45, 0x3a, 0x5f, 0x3d, 0xdc, 0xa5, 0x81, 0x61, 0x57, 0x10, 0x79, + 0xe4, 0xcd, 0x61, 0xfc, 0x0b, 0x32, 0xf2, 0xc8, 0x04, 0x24, 0x5b, 0xa7, 0x1c, 0xc2, 0xda, 0x03, + 0xb1, 0x91, 0x28, 0x6a, 0x89, 0x62, 0x62, 0xab, 0xb4, 0x0e, 0x0d, 0xee, 0x21, 0xd9, 0xe2, 0xac, + 0x07, 0x91, 0x51, 0xc1, 0x5a, 0x3b, 0x8d, 0x8c, 0x62, 0x1c, 0x92, 0x12, 0xad, 0x59, 0x6a, 0x17, + 0x04, 0xb5, 0xd3, 0xfa, 0xca, 0xfa, 0x10, 0x2f, 0x75, 0x15, 0x7a, 0x75, 0xd3, 0xef, 0xe3, 0x34, + 0x79, 0x6f, 0x89, 0xb1, 0x27, 0xca, 0xff, 0x84, 0x35, 0x97, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, + 0x38, 0xe7, 0xf6, 0x88, 0xda, 0x01, 0x00, 0x00, } diff --git a/tss/params.go b/tss/params.go index 2289f687..8cb33368 100644 --- a/tss/params.go +++ b/tss/params.go @@ -7,12 +7,14 @@ package tss import ( + "crypto/elliptic" "errors" "time" ) type ( Parameters struct { + ec elliptic.Curve partyID *PartyID parties *PeerContext partyCount int @@ -33,7 +35,7 @@ const ( ) // Exported, used in `tss` client -func NewParameters(ctx *PeerContext, partyID *PartyID, partyCount, threshold int, optionalSafePrimeGenTimeout ...time.Duration) *Parameters { +func NewParameters(ec elliptic.Curve, ctx *PeerContext, partyID *PartyID, partyCount, threshold int, optionalSafePrimeGenTimeout ...time.Duration) *Parameters { var safePrimeGenTimeout time.Duration if 0 < len(optionalSafePrimeGenTimeout) { if 1 < len(optionalSafePrimeGenTimeout) { @@ -44,6 +46,7 @@ func NewParameters(ctx *PeerContext, partyID *PartyID, partyCount, threshold int safePrimeGenTimeout = defaultSafePrimeGenTimeout } return &Parameters{ + ec: ec, parties: ctx, partyID: partyID, partyCount: partyCount, @@ -52,6 +55,10 @@ func NewParameters(ctx *PeerContext, partyID *PartyID, partyCount, threshold int } } +func (params *Parameters) EC() elliptic.Curve { + return params.ec +} + func (params *Parameters) Parties() *PeerContext { return params.parties } @@ -75,8 +82,8 @@ func (params *Parameters) SafePrimeGenTimeout() time.Duration { // ----- // // Exported, used in `tss` client -func NewReSharingParameters(ctx, newCtx *PeerContext, partyID *PartyID, partyCount, threshold, newPartyCount, newThreshold int) *ReSharingParameters { - params := NewParameters(ctx, partyID, partyCount, threshold) +func NewReSharingParameters(ec elliptic.Curve, ctx, newCtx *PeerContext, partyID *PartyID, partyCount, threshold, newPartyCount, newThreshold int) *ReSharingParameters { + params := NewParameters(ec, ctx, partyID, partyCount, threshold) return &ReSharingParameters{ Parameters: params, newParties: newCtx, From 1cfbd1cba98c85c67271cc3852e07da341b13f84 Mon Sep 17 00:00:00 2001 From: FitzLu Date: Fri, 13 Aug 2021 16:33:58 +0800 Subject: [PATCH 15/50] gofmt --- tss/curve.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/tss/curve.go b/tss/curve.go index 48637c17..4349c701 100644 --- a/tss/curve.go +++ b/tss/curve.go @@ -19,11 +19,11 @@ type CurveName string const ( Secp256k1 CurveName = "secp256k1" - Ed25519 CurveName = "ed25519" + Ed25519 CurveName = "ed25519" ) var ( - ec elliptic.Curve + ec elliptic.Curve registry map[CurveName]elliptic.Curve ) @@ -32,12 +32,12 @@ func init() { ec = s256k1.S256() registry = make(map[CurveName]elliptic.Curve) - registry[Secp256k1]=s256k1.S256() - registry[Ed25519]=edwards.Edwards() + registry[Secp256k1] = s256k1.S256() + registry[Ed25519] = edwards.Edwards() } func RegisterCurve(name CurveName, curve elliptic.Curve) { - registry[name]=curve + registry[name] = curve } // return curve, exist(bool) From 05b0624c567cefdc6007c998b0be98af3ccddf45 Mon Sep 17 00:00:00 2001 From: Plamen Hristov Date: Tue, 31 Aug 2021 22:45:38 +0300 Subject: [PATCH 16/50] Updated Google protobuf dependency and fixed type clash --- Makefile | 2 +- common/signature.pb.go | 207 +++-- ecdsa/keygen/ecdsa-keygen.pb.go | 484 ++++++++---- ecdsa/keygen/local_party_test.go | 2 +- ecdsa/keygen/messages.go | 9 - ecdsa/resharing/ecdsa-resharing.pb.go | 649 +++++++++------ ecdsa/resharing/messages.go | 10 - ecdsa/signing/ecdsa-signing.pb.go | 1044 ++++++++++++++++--------- ecdsa/signing/messages.go | 15 - eddsa/keygen/eddsa-keygen.pb.go | 375 ++++++--- eddsa/keygen/messages.go | 8 - eddsa/resharing/eddsa-resharing.pb.go | 497 ++++++++---- eddsa/resharing/local_party.go | 4 +- eddsa/resharing/messages.go | 17 +- eddsa/resharing/round_2_new_step_1.go | 2 +- eddsa/signing/eddsa-signing.pb.go | 372 ++++++--- eddsa/signing/messages.go | 8 - go.mod | 4 +- go.sum | 7 + protob/ecdsa-keygen.proto | 2 + protob/ecdsa-resharing.proto | 2 + protob/ecdsa-signing.proto | 2 + protob/eddsa-keygen.proto | 2 + protob/eddsa-resharing.proto | 2 + protob/eddsa-signing.proto | 2 + tss/message.go | 8 +- tss/message.pb.go | 343 +++++--- tss/wire.go | 23 +- 28 files changed, 2623 insertions(+), 1479 deletions(-) diff --git a/Makefile b/Makefile index a2466e02..85abac14 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ all: protob test protob: @echo "--> Building Protocol Buffers" - @for protocol in message signature ecdsa-keygen ecdsa-signing ecdsa-resharing; do \ + @for protocol in message signature ecdsa-keygen ecdsa-signing ecdsa-resharing eddsa-keygen eddsa-signing eddsa-resharing; do \ echo "Generating $$protocol.pb.go" ; \ protoc --go_out=. ./protob/$$protocol.proto ; \ done diff --git a/common/signature.pb.go b/common/signature.pb.go index 43049d2d..0d55efa0 100644 --- a/common/signature.pb.go +++ b/common/signature.pb.go @@ -1,28 +1,38 @@ +// Copyright © 2019 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 // source: protob/signature.proto package common import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // // Container for output signatures, mostly used for marshalling this data structure to a mobile app type SignatureData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Signature []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"` // Ethereum-style recovery byte; only the first byte is relevant SignatureRecovery []byte `protobuf:"bytes,2,opt,name=signature_recovery,json=signatureRecovery,proto3" json:"signature_recovery,omitempty"` @@ -30,87 +40,152 @@ type SignatureData struct { R []byte `protobuf:"bytes,3,opt,name=r,proto3" json:"r,omitempty"` S []byte `protobuf:"bytes,4,opt,name=s,proto3" json:"s,omitempty"` // M represents the original message digest that was signed M - M []byte `protobuf:"bytes,5,opt,name=m,proto3" json:"m,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + M []byte `protobuf:"bytes,5,opt,name=m,proto3" json:"m,omitempty"` } -func (m *SignatureData) Reset() { *m = SignatureData{} } -func (m *SignatureData) String() string { return proto.CompactTextString(m) } -func (*SignatureData) ProtoMessage() {} -func (*SignatureData) Descriptor() ([]byte, []int) { - return fileDescriptor_a73ad5e44f61b3fb, []int{0} +func (x *SignatureData) Reset() { + *x = SignatureData{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_signature_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignatureData) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignatureData.Unmarshal(m, b) -} -func (m *SignatureData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignatureData.Marshal(b, m, deterministic) -} -func (m *SignatureData) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignatureData.Merge(m, src) +func (x *SignatureData) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignatureData) XXX_Size() int { - return xxx_messageInfo_SignatureData.Size(m) -} -func (m *SignatureData) XXX_DiscardUnknown() { - xxx_messageInfo_SignatureData.DiscardUnknown(m) + +func (*SignatureData) ProtoMessage() {} + +func (x *SignatureData) ProtoReflect() protoreflect.Message { + mi := &file_protob_signature_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignatureData proto.InternalMessageInfo +// Deprecated: Use SignatureData.ProtoReflect.Descriptor instead. +func (*SignatureData) Descriptor() ([]byte, []int) { + return file_protob_signature_proto_rawDescGZIP(), []int{0} +} -func (m *SignatureData) GetSignature() []byte { - if m != nil { - return m.Signature +func (x *SignatureData) GetSignature() []byte { + if x != nil { + return x.Signature } return nil } -func (m *SignatureData) GetSignatureRecovery() []byte { - if m != nil { - return m.SignatureRecovery +func (x *SignatureData) GetSignatureRecovery() []byte { + if x != nil { + return x.SignatureRecovery } return nil } -func (m *SignatureData) GetR() []byte { - if m != nil { - return m.R +func (x *SignatureData) GetR() []byte { + if x != nil { + return x.R } return nil } -func (m *SignatureData) GetS() []byte { - if m != nil { - return m.S +func (x *SignatureData) GetS() []byte { + if x != nil { + return x.S } return nil } -func (m *SignatureData) GetM() []byte { - if m != nil { - return m.M +func (x *SignatureData) GetM() []byte { + if x != nil { + return x.M } return nil } -func init() { - proto.RegisterType((*SignatureData)(nil), "SignatureData") +var File_protob_signature_proto protoreflect.FileDescriptor + +var file_protob_signature_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x86, 0x01, 0x0a, 0x0d, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, + 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x01, 0x72, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, + 0x6d, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_protob_signature_proto_rawDescOnce sync.Once + file_protob_signature_proto_rawDescData = file_protob_signature_proto_rawDesc +) + +func file_protob_signature_proto_rawDescGZIP() []byte { + file_protob_signature_proto_rawDescOnce.Do(func() { + file_protob_signature_proto_rawDescData = protoimpl.X.CompressGZIP(file_protob_signature_proto_rawDescData) + }) + return file_protob_signature_proto_rawDescData +} + +var file_protob_signature_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_protob_signature_proto_goTypes = []interface{}{ + (*SignatureData)(nil), // 0: SignatureData +} +var file_protob_signature_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name } -func init() { proto.RegisterFile("protob/signature.proto", fileDescriptor_a73ad5e44f61b3fb) } - -var fileDescriptor_a73ad5e44f61b3fb = []byte{ - // 139 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x2b, 0x28, 0xca, 0x2f, - 0xc9, 0x4f, 0xd2, 0x2f, 0xce, 0x4c, 0xcf, 0x4b, 0x2c, 0x29, 0x2d, 0x4a, 0xd5, 0x03, 0x0b, 0x28, - 0xb5, 0x31, 0x72, 0xf1, 0x06, 0xc3, 0xc4, 0x5c, 0x12, 0x4b, 0x12, 0x85, 0x64, 0xb8, 0x38, 0xe1, - 0x8a, 0x24, 0x18, 0x15, 0x18, 0x35, 0x78, 0x82, 0x10, 0x02, 0x42, 0xba, 0x5c, 0x42, 0x70, 0x4e, - 0x7c, 0x51, 0x6a, 0x72, 0x7e, 0x59, 0x6a, 0x51, 0xa5, 0x04, 0x13, 0x58, 0x99, 0x20, 0x5c, 0x26, - 0x08, 0x2a, 0x21, 0xc4, 0xc3, 0xc5, 0x58, 0x24, 0xc1, 0x0c, 0x96, 0x65, 0x2c, 0x02, 0xf1, 0x8a, - 0x25, 0x58, 0x20, 0xbc, 0x62, 0x10, 0x2f, 0x57, 0x82, 0x15, 0xc2, 0xcb, 0x75, 0xe2, 0x8a, 0xe2, - 0xd0, 0xd3, 0x4f, 0xce, 0xcf, 0xcd, 0xcd, 0xcf, 0x4b, 0x62, 0x03, 0xbb, 0xcd, 0x18, 0x10, 0x00, - 0x00, 0xff, 0xff, 0x99, 0x1e, 0xab, 0x5b, 0xb5, 0x00, 0x00, 0x00, +func init() { file_protob_signature_proto_init() } +func file_protob_signature_proto_init() { + if File_protob_signature_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protob_signature_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignatureData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protob_signature_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protob_signature_proto_goTypes, + DependencyIndexes: file_protob_signature_proto_depIdxs, + MessageInfos: file_protob_signature_proto_msgTypes, + }.Build() + File_protob_signature_proto = out.File + file_protob_signature_proto_rawDesc = nil + file_protob_signature_proto_goTypes = nil + file_protob_signature_proto_depIdxs = nil } diff --git a/ecdsa/keygen/ecdsa-keygen.pb.go b/ecdsa/keygen/ecdsa-keygen.pb.go index e65faeae..89e8487a 100644 --- a/ecdsa/keygen/ecdsa-keygen.pb.go +++ b/ecdsa/keygen/ecdsa-keygen.pb.go @@ -1,110 +1,124 @@ +// Copyright © 2019 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 // source: protob/ecdsa-keygen.proto package keygen import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // // Represents a BROADCAST message sent during Round 1 of the ECDSA TSS keygen protocol. type KGRound1Message struct { - Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` - PaillierN []byte `protobuf:"bytes,2,opt,name=paillier_n,json=paillierN,proto3" json:"paillier_n,omitempty"` - NTilde []byte `protobuf:"bytes,3,opt,name=n_tilde,json=nTilde,proto3" json:"n_tilde,omitempty"` - H1 []byte `protobuf:"bytes,4,opt,name=h1,proto3" json:"h1,omitempty"` - H2 []byte `protobuf:"bytes,5,opt,name=h2,proto3" json:"h2,omitempty"` - Dlnproof_1 [][]byte `protobuf:"bytes,6,rep,name=dlnproof_1,json=dlnproof1,proto3" json:"dlnproof_1,omitempty"` - Dlnproof_2 [][]byte `protobuf:"bytes,7,rep,name=dlnproof_2,json=dlnproof2,proto3" json:"dlnproof_2,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *KGRound1Message) Reset() { *m = KGRound1Message{} } -func (m *KGRound1Message) String() string { return proto.CompactTextString(m) } -func (*KGRound1Message) ProtoMessage() {} -func (*KGRound1Message) Descriptor() ([]byte, []int) { - return fileDescriptor_1a2e19e981cdbb01, []int{0} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` + PaillierN []byte `protobuf:"bytes,2,opt,name=paillier_n,json=paillierN,proto3" json:"paillier_n,omitempty"` + NTilde []byte `protobuf:"bytes,3,opt,name=n_tilde,json=nTilde,proto3" json:"n_tilde,omitempty"` + H1 []byte `protobuf:"bytes,4,opt,name=h1,proto3" json:"h1,omitempty"` + H2 []byte `protobuf:"bytes,5,opt,name=h2,proto3" json:"h2,omitempty"` + Dlnproof_1 [][]byte `protobuf:"bytes,6,rep,name=dlnproof_1,json=dlnproof1,proto3" json:"dlnproof_1,omitempty"` + Dlnproof_2 [][]byte `protobuf:"bytes,7,rep,name=dlnproof_2,json=dlnproof2,proto3" json:"dlnproof_2,omitempty"` +} + +func (x *KGRound1Message) Reset() { + *x = KGRound1Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_keygen_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *KGRound1Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KGRound1Message.Unmarshal(m, b) -} -func (m *KGRound1Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KGRound1Message.Marshal(b, m, deterministic) +func (x *KGRound1Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *KGRound1Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_KGRound1Message.Merge(m, src) -} -func (m *KGRound1Message) XXX_Size() int { - return xxx_messageInfo_KGRound1Message.Size(m) -} -func (m *KGRound1Message) XXX_DiscardUnknown() { - xxx_messageInfo_KGRound1Message.DiscardUnknown(m) + +func (*KGRound1Message) ProtoMessage() {} + +func (x *KGRound1Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_keygen_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_KGRound1Message proto.InternalMessageInfo +// Deprecated: Use KGRound1Message.ProtoReflect.Descriptor instead. +func (*KGRound1Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_keygen_proto_rawDescGZIP(), []int{0} +} -func (m *KGRound1Message) GetCommitment() []byte { - if m != nil { - return m.Commitment +func (x *KGRound1Message) GetCommitment() []byte { + if x != nil { + return x.Commitment } return nil } -func (m *KGRound1Message) GetPaillierN() []byte { - if m != nil { - return m.PaillierN +func (x *KGRound1Message) GetPaillierN() []byte { + if x != nil { + return x.PaillierN } return nil } -func (m *KGRound1Message) GetNTilde() []byte { - if m != nil { - return m.NTilde +func (x *KGRound1Message) GetNTilde() []byte { + if x != nil { + return x.NTilde } return nil } -func (m *KGRound1Message) GetH1() []byte { - if m != nil { - return m.H1 +func (x *KGRound1Message) GetH1() []byte { + if x != nil { + return x.H1 } return nil } -func (m *KGRound1Message) GetH2() []byte { - if m != nil { - return m.H2 +func (x *KGRound1Message) GetH2() []byte { + if x != nil { + return x.H2 } return nil } -func (m *KGRound1Message) GetDlnproof_1() [][]byte { - if m != nil { - return m.Dlnproof_1 +func (x *KGRound1Message) GetDlnproof_1() [][]byte { + if x != nil { + return x.Dlnproof_1 } return nil } -func (m *KGRound1Message) GetDlnproof_2() [][]byte { - if m != nil { - return m.Dlnproof_2 +func (x *KGRound1Message) GetDlnproof_2() [][]byte { + if x != nil { + return x.Dlnproof_2 } return nil } @@ -112,40 +126,48 @@ func (m *KGRound1Message) GetDlnproof_2() [][]byte { // // Represents a P2P message sent to each party during Round 2 of the ECDSA TSS keygen protocol. type KGRound2Message1 struct { - Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *KGRound2Message1) Reset() { *m = KGRound2Message1{} } -func (m *KGRound2Message1) String() string { return proto.CompactTextString(m) } -func (*KGRound2Message1) ProtoMessage() {} -func (*KGRound2Message1) Descriptor() ([]byte, []int) { - return fileDescriptor_1a2e19e981cdbb01, []int{1} + Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` } -func (m *KGRound2Message1) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KGRound2Message1.Unmarshal(m, b) -} -func (m *KGRound2Message1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KGRound2Message1.Marshal(b, m, deterministic) -} -func (m *KGRound2Message1) XXX_Merge(src proto.Message) { - xxx_messageInfo_KGRound2Message1.Merge(m, src) +func (x *KGRound2Message1) Reset() { + *x = KGRound2Message1{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_keygen_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *KGRound2Message1) XXX_Size() int { - return xxx_messageInfo_KGRound2Message1.Size(m) + +func (x *KGRound2Message1) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *KGRound2Message1) XXX_DiscardUnknown() { - xxx_messageInfo_KGRound2Message1.DiscardUnknown(m) + +func (*KGRound2Message1) ProtoMessage() {} + +func (x *KGRound2Message1) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_keygen_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_KGRound2Message1 proto.InternalMessageInfo +// Deprecated: Use KGRound2Message1.ProtoReflect.Descriptor instead. +func (*KGRound2Message1) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_keygen_proto_rawDescGZIP(), []int{1} +} -func (m *KGRound2Message1) GetShare() []byte { - if m != nil { - return m.Share +func (x *KGRound2Message1) GetShare() []byte { + if x != nil { + return x.Share } return nil } @@ -153,40 +175,48 @@ func (m *KGRound2Message1) GetShare() []byte { // // Represents a BROADCAST message sent to each party during Round 2 of the ECDSA TSS keygen protocol. type KGRound2Message2 struct { - DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *KGRound2Message2) Reset() { *m = KGRound2Message2{} } -func (m *KGRound2Message2) String() string { return proto.CompactTextString(m) } -func (*KGRound2Message2) ProtoMessage() {} -func (*KGRound2Message2) Descriptor() ([]byte, []int) { - return fileDescriptor_1a2e19e981cdbb01, []int{2} + DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` } -func (m *KGRound2Message2) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KGRound2Message2.Unmarshal(m, b) -} -func (m *KGRound2Message2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KGRound2Message2.Marshal(b, m, deterministic) -} -func (m *KGRound2Message2) XXX_Merge(src proto.Message) { - xxx_messageInfo_KGRound2Message2.Merge(m, src) +func (x *KGRound2Message2) Reset() { + *x = KGRound2Message2{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_keygen_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *KGRound2Message2) XXX_Size() int { - return xxx_messageInfo_KGRound2Message2.Size(m) + +func (x *KGRound2Message2) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *KGRound2Message2) XXX_DiscardUnknown() { - xxx_messageInfo_KGRound2Message2.DiscardUnknown(m) + +func (*KGRound2Message2) ProtoMessage() {} + +func (x *KGRound2Message2) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_keygen_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_KGRound2Message2 proto.InternalMessageInfo +// Deprecated: Use KGRound2Message2.ProtoReflect.Descriptor instead. +func (*KGRound2Message2) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_keygen_proto_rawDescGZIP(), []int{2} +} -func (m *KGRound2Message2) GetDeCommitment() [][]byte { - if m != nil { - return m.DeCommitment +func (x *KGRound2Message2) GetDeCommitment() [][]byte { + if x != nil { + return x.DeCommitment } return nil } @@ -194,70 +224,182 @@ func (m *KGRound2Message2) GetDeCommitment() [][]byte { // // Represents a BROADCAST message sent to each party during Round 3 of the ECDSA TSS keygen protocol. type KGRound3Message struct { - PaillierProof [][]byte `protobuf:"bytes,1,rep,name=paillier_proof,json=paillierProof,proto3" json:"paillier_proof,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *KGRound3Message) Reset() { *m = KGRound3Message{} } -func (m *KGRound3Message) String() string { return proto.CompactTextString(m) } -func (*KGRound3Message) ProtoMessage() {} -func (*KGRound3Message) Descriptor() ([]byte, []int) { - return fileDescriptor_1a2e19e981cdbb01, []int{3} + PaillierProof [][]byte `protobuf:"bytes,1,rep,name=paillier_proof,json=paillierProof,proto3" json:"paillier_proof,omitempty"` } -func (m *KGRound3Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KGRound3Message.Unmarshal(m, b) -} -func (m *KGRound3Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KGRound3Message.Marshal(b, m, deterministic) -} -func (m *KGRound3Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_KGRound3Message.Merge(m, src) +func (x *KGRound3Message) Reset() { + *x = KGRound3Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_keygen_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *KGRound3Message) XXX_Size() int { - return xxx_messageInfo_KGRound3Message.Size(m) + +func (x *KGRound3Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *KGRound3Message) XXX_DiscardUnknown() { - xxx_messageInfo_KGRound3Message.DiscardUnknown(m) + +func (*KGRound3Message) ProtoMessage() {} + +func (x *KGRound3Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_keygen_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_KGRound3Message proto.InternalMessageInfo +// Deprecated: Use KGRound3Message.ProtoReflect.Descriptor instead. +func (*KGRound3Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_keygen_proto_rawDescGZIP(), []int{3} +} -func (m *KGRound3Message) GetPaillierProof() [][]byte { - if m != nil { - return m.PaillierProof +func (x *KGRound3Message) GetPaillierProof() [][]byte { + if x != nil { + return x.PaillierProof } return nil } -func init() { - proto.RegisterType((*KGRound1Message)(nil), "KGRound1Message") - proto.RegisterType((*KGRound2Message1)(nil), "KGRound2Message1") - proto.RegisterType((*KGRound2Message2)(nil), "KGRound2Message2") - proto.RegisterType((*KGRound3Message)(nil), "KGRound3Message") -} - -func init() { proto.RegisterFile("protob/ecdsa-keygen.proto", fileDescriptor_1a2e19e981cdbb01) } - -var fileDescriptor_1a2e19e981cdbb01 = []byte{ - // 263 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x90, 0x41, 0x4b, 0xc3, 0x40, - 0x10, 0x85, 0x49, 0x6a, 0x53, 0x1c, 0xd2, 0x28, 0x8b, 0xe0, 0x7a, 0x50, 0x4a, 0x44, 0xe8, 0x45, - 0xcb, 0x6e, 0x0f, 0x7a, 0xd6, 0x83, 0x07, 0x51, 0xa4, 0x78, 0xf2, 0x12, 0xd2, 0xee, 0xd8, 0x04, - 0x93, 0xdd, 0x90, 0xc4, 0x83, 0xbf, 0xd0, 0xbf, 0x25, 0x3b, 0xd9, 0x04, 0x83, 0xc7, 0xf7, 0xbd, - 0x64, 0xd8, 0xf7, 0xc1, 0x59, 0x55, 0x9b, 0xd6, 0x6c, 0x57, 0xb8, 0x53, 0x4d, 0x7a, 0xfd, 0x89, - 0xdf, 0x7b, 0xd4, 0x37, 0xc4, 0xe2, 0x1f, 0x0f, 0x8e, 0x9e, 0x1e, 0x37, 0xe6, 0x4b, 0x2b, 0xf1, - 0x8c, 0x4d, 0x93, 0xee, 0x91, 0x5d, 0x00, 0xec, 0x4c, 0x59, 0xe6, 0x6d, 0x89, 0xba, 0xe5, 0xde, - 0xc2, 0x5b, 0x86, 0x9b, 0x3f, 0x84, 0x9d, 0x03, 0x54, 0x69, 0x5e, 0x14, 0x39, 0xd6, 0x89, 0xe6, - 0x3e, 0xf5, 0x87, 0x3d, 0x79, 0x61, 0xa7, 0x30, 0xd3, 0x49, 0x9b, 0x17, 0x0a, 0xf9, 0x84, 0xba, - 0x40, 0xbf, 0xd9, 0xc4, 0x22, 0xf0, 0x33, 0xc1, 0x0f, 0x88, 0xf9, 0x99, 0xa0, 0x2c, 0xf9, 0xd4, - 0x65, 0x69, 0xef, 0xaa, 0x42, 0x57, 0xb5, 0x31, 0x1f, 0x89, 0xe0, 0xc1, 0x62, 0x62, 0xef, 0xf6, - 0x44, 0x8c, 0x6a, 0xc9, 0x67, 0xe3, 0x5a, 0xc6, 0x4b, 0x38, 0x76, 0x43, 0xa4, 0x1b, 0x22, 0xd8, - 0x09, 0x4c, 0x9b, 0x2c, 0xad, 0xd1, 0x8d, 0xe8, 0x42, 0x7c, 0xfb, 0xef, 0x4b, 0xc9, 0x2e, 0x61, - 0xae, 0x30, 0x19, 0xcd, 0xb6, 0xf7, 0x43, 0x85, 0x0f, 0x03, 0x8b, 0xef, 0x06, 0x57, 0xeb, 0xde, - 0xd5, 0x15, 0x44, 0x83, 0x0b, 0x7a, 0x88, 0xfb, 0x71, 0xde, 0xd3, 0x57, 0x0b, 0xef, 0xa3, 0xf7, - 0x90, 0xe4, 0xaf, 0x3a, 0xf9, 0xdb, 0x80, 0xec, 0xaf, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0xe9, - 0x13, 0x63, 0x79, 0x9a, 0x01, 0x00, 0x00, +var File_protob_ecdsa_keygen_proto protoreflect.FileDescriptor + +var file_protob_ecdsa_keygen_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x65, 0x63, 0x64, 0x73, 0x61, 0x2d, 0x6b, + 0x65, 0x79, 0x67, 0x65, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x65, 0x63, 0x64, + 0x73, 0x61, 0x22, 0xc7, 0x01, 0x0a, 0x0f, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x31, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, + 0x65, 0x72, 0x5f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x61, 0x69, 0x6c, + 0x6c, 0x69, 0x65, 0x72, 0x4e, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x5f, 0x74, 0x69, 0x6c, 0x64, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6e, 0x54, 0x69, 0x6c, 0x64, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x68, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x68, 0x31, 0x12, 0x0e, + 0x0a, 0x02, 0x68, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x68, 0x32, 0x12, 0x1d, + 0x0a, 0x0a, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x31, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x09, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x31, 0x12, 0x1d, 0x0a, + 0x0a, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x32, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0c, 0x52, 0x09, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x32, 0x22, 0x28, 0x0a, 0x10, + 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x22, 0x37, 0x0a, 0x10, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x38, 0x0a, 0x0f, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x61, 0x69, 0x6c, + 0x6c, 0x69, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x0e, 0x5a, 0x0c, 0x65, 0x63, 0x64, + 0x73, 0x61, 0x2f, 0x6b, 0x65, 0x79, 0x67, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_protob_ecdsa_keygen_proto_rawDescOnce sync.Once + file_protob_ecdsa_keygen_proto_rawDescData = file_protob_ecdsa_keygen_proto_rawDesc +) + +func file_protob_ecdsa_keygen_proto_rawDescGZIP() []byte { + file_protob_ecdsa_keygen_proto_rawDescOnce.Do(func() { + file_protob_ecdsa_keygen_proto_rawDescData = protoimpl.X.CompressGZIP(file_protob_ecdsa_keygen_proto_rawDescData) + }) + return file_protob_ecdsa_keygen_proto_rawDescData +} + +var file_protob_ecdsa_keygen_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_protob_ecdsa_keygen_proto_goTypes = []interface{}{ + (*KGRound1Message)(nil), // 0: ecdsa.KGRound1Message + (*KGRound2Message1)(nil), // 1: ecdsa.KGRound2Message1 + (*KGRound2Message2)(nil), // 2: ecdsa.KGRound2Message2 + (*KGRound3Message)(nil), // 3: ecdsa.KGRound3Message +} +var file_protob_ecdsa_keygen_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_protob_ecdsa_keygen_proto_init() } +func file_protob_ecdsa_keygen_proto_init() { + if File_protob_ecdsa_keygen_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protob_ecdsa_keygen_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KGRound1Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_keygen_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KGRound2Message1); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_keygen_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KGRound2Message2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_keygen_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KGRound3Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protob_ecdsa_keygen_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protob_ecdsa_keygen_proto_goTypes, + DependencyIndexes: file_protob_ecdsa_keygen_proto_depIdxs, + MessageInfos: file_protob_ecdsa_keygen_proto_msgTypes, + }.Build() + File_protob_ecdsa_keygen_proto = out.File + file_protob_ecdsa_keygen_proto_rawDesc = nil + file_protob_ecdsa_keygen_proto_goTypes = nil + file_protob_ecdsa_keygen_proto_depIdxs = nil } diff --git a/ecdsa/keygen/local_party_test.go b/ecdsa/keygen/local_party_test.go index 517ae451..7bb94c49 100644 --- a/ecdsa/keygen/local_party_test.go +++ b/ecdsa/keygen/local_party_test.go @@ -162,7 +162,7 @@ func TestBadMessageCulprits(t *testing.T) { assert.Equal(t, 1, len(err2.Culprits())) assert.Equal(t, pIDs[1], err2.Culprits()[0]) assert.Equal(t, - "task ecdsa-keygen, party {0,P[1]}, round 1, culprits [{1,2}]: message failed ValidateBasic: Type: binance.tss-lib.ecdsa.keygen.KGRound1Message, From: {1,2}, To: all", + "task ecdsa-keygen, party {0,P[1]}, round 1, culprits [{1,2}]: message failed ValidateBasic: Type: ecdsa.KGRound1Message, From: {1,2}, To: all", err2.Error()) } diff --git a/ecdsa/keygen/messages.go b/ecdsa/keygen/messages.go index 17296ca1..fbebe2ac 100644 --- a/ecdsa/keygen/messages.go +++ b/ecdsa/keygen/messages.go @@ -9,8 +9,6 @@ package keygen import ( "math/big" - "github.com/golang/protobuf/proto" - "github.com/binance-chain/tss-lib/common" cmt "github.com/binance-chain/tss-lib/crypto/commitments" "github.com/binance-chain/tss-lib/crypto/dlnproof" @@ -32,13 +30,6 @@ var ( } ) -func init() { - proto.RegisterType((*KGRound1Message)(nil), tss.ECDSAProtoNamePrefix+"keygen.KGRound1Message") - proto.RegisterType((*KGRound2Message1)(nil), tss.ECDSAProtoNamePrefix+"keygen.KGRound2Message1") - proto.RegisterType((*KGRound2Message2)(nil), tss.ECDSAProtoNamePrefix+"keygen.KGRound2Message2") - proto.RegisterType((*KGRound3Message)(nil), tss.ECDSAProtoNamePrefix+"keygen.KGRound3Message") -} - // ----- // func NewKGRound1Message( diff --git a/ecdsa/resharing/ecdsa-resharing.pb.go b/ecdsa/resharing/ecdsa-resharing.pb.go index 30b49d35..1998bb2f 100644 --- a/ecdsa/resharing/ecdsa-resharing.pb.go +++ b/ecdsa/resharing/ecdsa-resharing.pb.go @@ -1,78 +1,92 @@ +// Copyright © 2019 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 // source: protob/ecdsa-resharing.proto package resharing import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // // The Round 1 data is broadcast to peers of the New Committee in this message. type DGRound1Message struct { - EcdsaPubX []byte `protobuf:"bytes,1,opt,name=ecdsa_pub_x,json=ecdsaPubX,proto3" json:"ecdsa_pub_x,omitempty"` - EcdsaPubY []byte `protobuf:"bytes,2,opt,name=ecdsa_pub_y,json=ecdsaPubY,proto3" json:"ecdsa_pub_y,omitempty"` - VCommitment []byte `protobuf:"bytes,3,opt,name=v_commitment,json=vCommitment,proto3" json:"v_commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DGRound1Message) Reset() { *m = DGRound1Message{} } -func (m *DGRound1Message) String() string { return proto.CompactTextString(m) } -func (*DGRound1Message) ProtoMessage() {} -func (*DGRound1Message) Descriptor() ([]byte, []int) { - return fileDescriptor_f7d3ae1dc68dc295, []int{0} + EcdsaPubX []byte `protobuf:"bytes,1,opt,name=ecdsa_pub_x,json=ecdsaPubX,proto3" json:"ecdsa_pub_x,omitempty"` + EcdsaPubY []byte `protobuf:"bytes,2,opt,name=ecdsa_pub_y,json=ecdsaPubY,proto3" json:"ecdsa_pub_y,omitempty"` + VCommitment []byte `protobuf:"bytes,3,opt,name=v_commitment,json=vCommitment,proto3" json:"v_commitment,omitempty"` } -func (m *DGRound1Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound1Message.Unmarshal(m, b) -} -func (m *DGRound1Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound1Message.Marshal(b, m, deterministic) -} -func (m *DGRound1Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound1Message.Merge(m, src) +func (x *DGRound1Message) Reset() { + *x = DGRound1Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound1Message) XXX_Size() int { - return xxx_messageInfo_DGRound1Message.Size(m) + +func (x *DGRound1Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound1Message) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound1Message.DiscardUnknown(m) + +func (*DGRound1Message) ProtoMessage() {} + +func (x *DGRound1Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound1Message proto.InternalMessageInfo +// Deprecated: Use DGRound1Message.ProtoReflect.Descriptor instead. +func (*DGRound1Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{0} +} -func (m *DGRound1Message) GetEcdsaPubX() []byte { - if m != nil { - return m.EcdsaPubX +func (x *DGRound1Message) GetEcdsaPubX() []byte { + if x != nil { + return x.EcdsaPubX } return nil } -func (m *DGRound1Message) GetEcdsaPubY() []byte { - if m != nil { - return m.EcdsaPubY +func (x *DGRound1Message) GetEcdsaPubY() []byte { + if x != nil { + return x.EcdsaPubY } return nil } -func (m *DGRound1Message) GetVCommitment() []byte { - if m != nil { - return m.VCommitment +func (x *DGRound1Message) GetVCommitment() []byte { + if x != nil { + return x.VCommitment } return nil } @@ -80,88 +94,96 @@ func (m *DGRound1Message) GetVCommitment() []byte { // // The Round 2 data is broadcast to other peers of the New Committee in this message. type DGRound2Message1 struct { - PaillierN []byte `protobuf:"bytes,1,opt,name=paillier_n,json=paillierN,proto3" json:"paillier_n,omitempty"` - PaillierProof [][]byte `protobuf:"bytes,2,rep,name=paillier_proof,json=paillierProof,proto3" json:"paillier_proof,omitempty"` - NTilde []byte `protobuf:"bytes,3,opt,name=n_tilde,json=nTilde,proto3" json:"n_tilde,omitempty"` - H1 []byte `protobuf:"bytes,4,opt,name=h1,proto3" json:"h1,omitempty"` - H2 []byte `protobuf:"bytes,5,opt,name=h2,proto3" json:"h2,omitempty"` - Dlnproof_1 [][]byte `protobuf:"bytes,6,rep,name=dlnproof_1,json=dlnproof1,proto3" json:"dlnproof_1,omitempty"` - Dlnproof_2 [][]byte `protobuf:"bytes,7,rep,name=dlnproof_2,json=dlnproof2,proto3" json:"dlnproof_2,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DGRound2Message1) Reset() { *m = DGRound2Message1{} } -func (m *DGRound2Message1) String() string { return proto.CompactTextString(m) } -func (*DGRound2Message1) ProtoMessage() {} -func (*DGRound2Message1) Descriptor() ([]byte, []int) { - return fileDescriptor_f7d3ae1dc68dc295, []int{1} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PaillierN []byte `protobuf:"bytes,1,opt,name=paillier_n,json=paillierN,proto3" json:"paillier_n,omitempty"` + PaillierProof [][]byte `protobuf:"bytes,2,rep,name=paillier_proof,json=paillierProof,proto3" json:"paillier_proof,omitempty"` + NTilde []byte `protobuf:"bytes,3,opt,name=n_tilde,json=nTilde,proto3" json:"n_tilde,omitempty"` + H1 []byte `protobuf:"bytes,4,opt,name=h1,proto3" json:"h1,omitempty"` + H2 []byte `protobuf:"bytes,5,opt,name=h2,proto3" json:"h2,omitempty"` + Dlnproof_1 [][]byte `protobuf:"bytes,6,rep,name=dlnproof_1,json=dlnproof1,proto3" json:"dlnproof_1,omitempty"` + Dlnproof_2 [][]byte `protobuf:"bytes,7,rep,name=dlnproof_2,json=dlnproof2,proto3" json:"dlnproof_2,omitempty"` +} + +func (x *DGRound2Message1) Reset() { + *x = DGRound2Message1{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound2Message1) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound2Message1.Unmarshal(m, b) -} -func (m *DGRound2Message1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound2Message1.Marshal(b, m, deterministic) +func (x *DGRound2Message1) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound2Message1) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound2Message1.Merge(m, src) -} -func (m *DGRound2Message1) XXX_Size() int { - return xxx_messageInfo_DGRound2Message1.Size(m) -} -func (m *DGRound2Message1) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound2Message1.DiscardUnknown(m) + +func (*DGRound2Message1) ProtoMessage() {} + +func (x *DGRound2Message1) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound2Message1 proto.InternalMessageInfo +// Deprecated: Use DGRound2Message1.ProtoReflect.Descriptor instead. +func (*DGRound2Message1) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{1} +} -func (m *DGRound2Message1) GetPaillierN() []byte { - if m != nil { - return m.PaillierN +func (x *DGRound2Message1) GetPaillierN() []byte { + if x != nil { + return x.PaillierN } return nil } -func (m *DGRound2Message1) GetPaillierProof() [][]byte { - if m != nil { - return m.PaillierProof +func (x *DGRound2Message1) GetPaillierProof() [][]byte { + if x != nil { + return x.PaillierProof } return nil } -func (m *DGRound2Message1) GetNTilde() []byte { - if m != nil { - return m.NTilde +func (x *DGRound2Message1) GetNTilde() []byte { + if x != nil { + return x.NTilde } return nil } -func (m *DGRound2Message1) GetH1() []byte { - if m != nil { - return m.H1 +func (x *DGRound2Message1) GetH1() []byte { + if x != nil { + return x.H1 } return nil } -func (m *DGRound2Message1) GetH2() []byte { - if m != nil { - return m.H2 +func (x *DGRound2Message1) GetH2() []byte { + if x != nil { + return x.H2 } return nil } -func (m *DGRound2Message1) GetDlnproof_1() [][]byte { - if m != nil { - return m.Dlnproof_1 +func (x *DGRound2Message1) GetDlnproof_1() [][]byte { + if x != nil { + return x.Dlnproof_1 } return nil } -func (m *DGRound2Message1) GetDlnproof_2() [][]byte { - if m != nil { - return m.Dlnproof_2 +func (x *DGRound2Message1) GetDlnproof_2() [][]byte { + if x != nil { + return x.Dlnproof_2 } return nil } @@ -169,73 +191,88 @@ func (m *DGRound2Message1) GetDlnproof_2() [][]byte { // // The Round 2 "ACK" is broadcast to peers of the Old Committee in this message. type DGRound2Message2 struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (m *DGRound2Message2) Reset() { *m = DGRound2Message2{} } -func (m *DGRound2Message2) String() string { return proto.CompactTextString(m) } -func (*DGRound2Message2) ProtoMessage() {} -func (*DGRound2Message2) Descriptor() ([]byte, []int) { - return fileDescriptor_f7d3ae1dc68dc295, []int{2} +func (x *DGRound2Message2) Reset() { + *x = DGRound2Message2{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound2Message2) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound2Message2.Unmarshal(m, b) +func (x *DGRound2Message2) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound2Message2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound2Message2.Marshal(b, m, deterministic) -} -func (m *DGRound2Message2) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound2Message2.Merge(m, src) -} -func (m *DGRound2Message2) XXX_Size() int { - return xxx_messageInfo_DGRound2Message2.Size(m) -} -func (m *DGRound2Message2) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound2Message2.DiscardUnknown(m) + +func (*DGRound2Message2) ProtoMessage() {} + +func (x *DGRound2Message2) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound2Message2 proto.InternalMessageInfo +// Deprecated: Use DGRound2Message2.ProtoReflect.Descriptor instead. +func (*DGRound2Message2) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{2} +} // // The Round 3 data is sent to peers of the New Committee in this message. type DGRound3Message1 struct { - Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DGRound3Message1) Reset() { *m = DGRound3Message1{} } -func (m *DGRound3Message1) String() string { return proto.CompactTextString(m) } -func (*DGRound3Message1) ProtoMessage() {} -func (*DGRound3Message1) Descriptor() ([]byte, []int) { - return fileDescriptor_f7d3ae1dc68dc295, []int{3} + Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` } -func (m *DGRound3Message1) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound3Message1.Unmarshal(m, b) -} -func (m *DGRound3Message1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound3Message1.Marshal(b, m, deterministic) -} -func (m *DGRound3Message1) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound3Message1.Merge(m, src) +func (x *DGRound3Message1) Reset() { + *x = DGRound3Message1{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound3Message1) XXX_Size() int { - return xxx_messageInfo_DGRound3Message1.Size(m) + +func (x *DGRound3Message1) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound3Message1) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound3Message1.DiscardUnknown(m) + +func (*DGRound3Message1) ProtoMessage() {} + +func (x *DGRound3Message1) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound3Message1 proto.InternalMessageInfo +// Deprecated: Use DGRound3Message1.ProtoReflect.Descriptor instead. +func (*DGRound3Message1) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{3} +} -func (m *DGRound3Message1) GetShare() []byte { - if m != nil { - return m.Share +func (x *DGRound3Message1) GetShare() []byte { + if x != nil { + return x.Share } return nil } @@ -243,40 +280,48 @@ func (m *DGRound3Message1) GetShare() []byte { // // The Round 3 data is broadcast to peers of the New Committee in this message. type DGRound3Message2 struct { - VDecommitment [][]byte `protobuf:"bytes,1,rep,name=v_decommitment,json=vDecommitment,proto3" json:"v_decommitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DGRound3Message2) Reset() { *m = DGRound3Message2{} } -func (m *DGRound3Message2) String() string { return proto.CompactTextString(m) } -func (*DGRound3Message2) ProtoMessage() {} -func (*DGRound3Message2) Descriptor() ([]byte, []int) { - return fileDescriptor_f7d3ae1dc68dc295, []int{4} + VDecommitment [][]byte `protobuf:"bytes,1,rep,name=v_decommitment,json=vDecommitment,proto3" json:"v_decommitment,omitempty"` } -func (m *DGRound3Message2) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound3Message2.Unmarshal(m, b) -} -func (m *DGRound3Message2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound3Message2.Marshal(b, m, deterministic) -} -func (m *DGRound3Message2) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound3Message2.Merge(m, src) +func (x *DGRound3Message2) Reset() { + *x = DGRound3Message2{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound3Message2) XXX_Size() int { - return xxx_messageInfo_DGRound3Message2.Size(m) + +func (x *DGRound3Message2) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound3Message2) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound3Message2.DiscardUnknown(m) + +func (*DGRound3Message2) ProtoMessage() {} + +func (x *DGRound3Message2) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound3Message2 proto.InternalMessageInfo +// Deprecated: Use DGRound3Message2.ProtoReflect.Descriptor instead. +func (*DGRound3Message2) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{4} +} -func (m *DGRound3Message2) GetVDecommitment() [][]byte { - if m != nil { - return m.VDecommitment +func (x *DGRound3Message2) GetVDecommitment() [][]byte { + if x != nil { + return x.VDecommitment } return nil } @@ -284,66 +329,206 @@ func (m *DGRound3Message2) GetVDecommitment() [][]byte { // // The Round 4 "ACK" is broadcast to peers of the Old and New Committees from the New Committee in this message. type DGRound4Message struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DGRound4Message) Reset() { + *x = DGRound4Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DGRound4Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound4Message) Reset() { *m = DGRound4Message{} } -func (m *DGRound4Message) String() string { return proto.CompactTextString(m) } -func (*DGRound4Message) ProtoMessage() {} +func (*DGRound4Message) ProtoMessage() {} + +func (x *DGRound4Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DGRound4Message.ProtoReflect.Descriptor instead. func (*DGRound4Message) Descriptor() ([]byte, []int) { - return fileDescriptor_f7d3ae1dc68dc295, []int{5} -} - -func (m *DGRound4Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound4Message.Unmarshal(m, b) -} -func (m *DGRound4Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound4Message.Marshal(b, m, deterministic) -} -func (m *DGRound4Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound4Message.Merge(m, src) -} -func (m *DGRound4Message) XXX_Size() int { - return xxx_messageInfo_DGRound4Message.Size(m) -} -func (m *DGRound4Message) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound4Message.DiscardUnknown(m) -} - -var xxx_messageInfo_DGRound4Message proto.InternalMessageInfo - -func init() { - proto.RegisterType((*DGRound1Message)(nil), "DGRound1Message") - proto.RegisterType((*DGRound2Message1)(nil), "DGRound2Message1") - proto.RegisterType((*DGRound2Message2)(nil), "DGRound2Message2") - proto.RegisterType((*DGRound3Message1)(nil), "DGRound3Message1") - proto.RegisterType((*DGRound3Message2)(nil), "DGRound3Message2") - proto.RegisterType((*DGRound4Message)(nil), "DGRound4Message") -} - -func init() { proto.RegisterFile("protob/ecdsa-resharing.proto", fileDescriptor_f7d3ae1dc68dc295) } - -var fileDescriptor_f7d3ae1dc68dc295 = []byte{ - // 303 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x91, 0xcf, 0x4b, 0xc3, 0x30, - 0x1c, 0xc5, 0x69, 0xe7, 0x3a, 0x96, 0xd5, 0xcd, 0x05, 0xc1, 0x1c, 0x54, 0x66, 0x40, 0xe8, 0x45, - 0x47, 0x32, 0x2f, 0x5e, 0x75, 0xe0, 0x49, 0x19, 0xc5, 0x83, 0x7a, 0x09, 0xed, 0x1a, 0xd7, 0x42, - 0x9b, 0x94, 0xfe, 0x42, 0xff, 0x4a, 0xff, 0x25, 0x69, 0x96, 0x86, 0x95, 0x1d, 0xdf, 0xe7, 0x7d, - 0x9b, 0xc7, 0xeb, 0x03, 0x97, 0x79, 0x21, 0x2b, 0x19, 0x2e, 0xf9, 0x36, 0x2a, 0x83, 0xbb, 0x82, - 0x97, 0x71, 0x50, 0x24, 0x62, 0x77, 0xaf, 0x30, 0xae, 0xc0, 0x6c, 0xfd, 0xe2, 0xcb, 0x5a, 0x44, - 0xe4, 0x95, 0x97, 0x65, 0xb0, 0xe3, 0xf0, 0x1a, 0x4c, 0xd4, 0x2d, 0xcb, 0xeb, 0x90, 0xfd, 0x20, - 0x6b, 0x61, 0x79, 0xae, 0x3f, 0x56, 0x68, 0x53, 0x87, 0x1f, 0x7d, 0xff, 0x17, 0xd9, 0x7d, 0xff, - 0x13, 0xde, 0x00, 0xb7, 0x61, 0x5b, 0x99, 0x65, 0x49, 0x95, 0x71, 0x51, 0xa1, 0x81, 0x3a, 0x98, - 0x34, 0xcf, 0x06, 0xe1, 0x3f, 0x0b, 0x9c, 0xe9, 0x58, 0xaa, 0x63, 0x09, 0xbc, 0x02, 0x20, 0x0f, - 0x92, 0x34, 0x4d, 0x78, 0xc1, 0x44, 0x17, 0xdb, 0x91, 0x37, 0x78, 0x0b, 0xa6, 0xc6, 0xce, 0x0b, - 0x29, 0xbf, 0x91, 0xbd, 0x18, 0x78, 0xae, 0x7f, 0xda, 0xd1, 0x4d, 0x0b, 0xe1, 0x05, 0x18, 0x09, - 0x56, 0x25, 0x69, 0xc4, 0x75, 0xb0, 0x23, 0xde, 0x5b, 0x05, 0xa7, 0xc0, 0x8e, 0x09, 0x3a, 0x51, - 0xcc, 0x8e, 0x89, 0xd2, 0x14, 0x0d, 0xb5, 0xa6, 0x6d, 0x7c, 0x94, 0x0a, 0xf5, 0x32, 0x23, 0xc8, - 0x51, 0x6f, 0x8f, 0x3b, 0x42, 0x7a, 0x36, 0x45, 0xa3, 0xbe, 0x4d, 0x31, 0x3c, 0x2a, 0x44, 0xb1, - 0x67, 0xd8, 0xca, 0x94, 0x3c, 0x07, 0xc3, 0x76, 0x00, 0xae, 0xfb, 0xed, 0x05, 0x7e, 0x3c, 0xba, - 0xa4, 0x6d, 0xdf, 0x86, 0x45, 0xfc, 0xe0, 0x47, 0x5a, 0xfb, 0xbe, 0xcd, 0xfa, 0x00, 0xe2, 0xb9, - 0x19, 0xf0, 0x41, 0x7f, 0xfa, 0x34, 0xff, 0x9a, 0xa9, 0x35, 0x96, 0x66, 0xec, 0xd0, 0x51, 0x6b, - 0xaf, 0xfe, 0x03, 0x00, 0x00, 0xff, 0xff, 0xe8, 0x14, 0x8e, 0x99, 0x0d, 0x02, 0x00, 0x00, + return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{5} +} + +var File_protob_ecdsa_resharing_proto protoreflect.FileDescriptor + +var file_protob_ecdsa_resharing_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x65, 0x63, 0x64, 0x73, 0x61, 0x2d, 0x72, + 0x65, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, + 0x65, 0x63, 0x64, 0x73, 0x61, 0x22, 0x74, 0x0a, 0x0f, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x63, 0x64, 0x73, + 0x61, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, + 0x63, 0x64, 0x73, 0x61, 0x50, 0x75, 0x62, 0x58, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x63, 0x64, 0x73, + 0x61, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, + 0x63, 0x64, 0x73, 0x61, 0x50, 0x75, 0x62, 0x59, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x5f, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, + 0x76, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xcf, 0x01, 0x0a, 0x10, + 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x4e, 0x12, + 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, + 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x5f, 0x74, 0x69, 0x6c, 0x64, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6e, 0x54, 0x69, 0x6c, 0x64, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x68, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x68, 0x31, 0x12, + 0x0e, 0x0a, 0x02, 0x68, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x68, 0x32, 0x12, + 0x1d, 0x0a, 0x0a, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x31, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0c, 0x52, 0x09, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x31, 0x12, 0x1d, + 0x0a, 0x0a, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x32, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x09, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x32, 0x22, 0x12, 0x0a, + 0x10, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x32, 0x22, 0x28, 0x0a, 0x10, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x44, + 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, + 0x25, 0x0a, 0x0e, 0x76, 0x5f, 0x64, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x76, 0x44, 0x65, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x34, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x11, 0x5a, 0x0f, 0x65, 0x63, 0x64, + 0x73, 0x61, 0x2f, 0x72, 0x65, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_protob_ecdsa_resharing_proto_rawDescOnce sync.Once + file_protob_ecdsa_resharing_proto_rawDescData = file_protob_ecdsa_resharing_proto_rawDesc +) + +func file_protob_ecdsa_resharing_proto_rawDescGZIP() []byte { + file_protob_ecdsa_resharing_proto_rawDescOnce.Do(func() { + file_protob_ecdsa_resharing_proto_rawDescData = protoimpl.X.CompressGZIP(file_protob_ecdsa_resharing_proto_rawDescData) + }) + return file_protob_ecdsa_resharing_proto_rawDescData +} + +var file_protob_ecdsa_resharing_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_protob_ecdsa_resharing_proto_goTypes = []interface{}{ + (*DGRound1Message)(nil), // 0: ecdsa.DGRound1Message + (*DGRound2Message1)(nil), // 1: ecdsa.DGRound2Message1 + (*DGRound2Message2)(nil), // 2: ecdsa.DGRound2Message2 + (*DGRound3Message1)(nil), // 3: ecdsa.DGRound3Message1 + (*DGRound3Message2)(nil), // 4: ecdsa.DGRound3Message2 + (*DGRound4Message)(nil), // 5: ecdsa.DGRound4Message +} +var file_protob_ecdsa_resharing_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_protob_ecdsa_resharing_proto_init() } +func file_protob_ecdsa_resharing_proto_init() { + if File_protob_ecdsa_resharing_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protob_ecdsa_resharing_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound1Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_resharing_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound2Message1); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_resharing_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound2Message2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_resharing_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound3Message1); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_resharing_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound3Message2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_resharing_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound4Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protob_ecdsa_resharing_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protob_ecdsa_resharing_proto_goTypes, + DependencyIndexes: file_protob_ecdsa_resharing_proto_depIdxs, + MessageInfos: file_protob_ecdsa_resharing_proto_msgTypes, + }.Build() + File_protob_ecdsa_resharing_proto = out.File + file_protob_ecdsa_resharing_proto_rawDesc = nil + file_protob_ecdsa_resharing_proto_goTypes = nil + file_protob_ecdsa_resharing_proto_depIdxs = nil } diff --git a/ecdsa/resharing/messages.go b/ecdsa/resharing/messages.go index a04ca154..09bdff7a 100644 --- a/ecdsa/resharing/messages.go +++ b/ecdsa/resharing/messages.go @@ -9,8 +9,6 @@ package resharing import ( "math/big" - "github.com/golang/protobuf/proto" - "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" cmt "github.com/binance-chain/tss-lib/crypto/commitments" @@ -33,14 +31,6 @@ var ( } ) -func init() { - proto.RegisterType((*DGRound1Message)(nil), tss.ECDSAProtoNamePrefix+"resharing.DGRound1Message") - proto.RegisterType((*DGRound2Message1)(nil), tss.ECDSAProtoNamePrefix+"resharing.DGRound2Message1") - proto.RegisterType((*DGRound2Message2)(nil), tss.ECDSAProtoNamePrefix+"resharing.DGRound2Message2") - proto.RegisterType((*DGRound3Message1)(nil), tss.ECDSAProtoNamePrefix+"resharing.DGRound3Message1") - proto.RegisterType((*DGRound3Message2)(nil), tss.ECDSAProtoNamePrefix+"resharing.DGRound3Message2") -} - // ----- // func NewDGRound1Message( diff --git a/ecdsa/signing/ecdsa-signing.pb.go b/ecdsa/signing/ecdsa-signing.pb.go index 54eb0c78..3eef19b6 100644 --- a/ecdsa/signing/ecdsa-signing.pb.go +++ b/ecdsa/signing/ecdsa-signing.pb.go @@ -1,70 +1,84 @@ +// Copyright © 2019 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 // source: protob/ecdsa-signing.proto package signing import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // // Represents a P2P message sent to each party during Round 1 of the ECDSA TSS signing protocol. type SignRound1Message1 struct { - C []byte `protobuf:"bytes,1,opt,name=c,proto3" json:"c,omitempty"` - RangeProofAlice [][]byte `protobuf:"bytes,2,rep,name=range_proof_alice,json=rangeProofAlice,proto3" json:"range_proof_alice,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound1Message1) Reset() { *m = SignRound1Message1{} } -func (m *SignRound1Message1) String() string { return proto.CompactTextString(m) } -func (*SignRound1Message1) ProtoMessage() {} -func (*SignRound1Message1) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{0} + C []byte `protobuf:"bytes,1,opt,name=c,proto3" json:"c,omitempty"` + RangeProofAlice [][]byte `protobuf:"bytes,2,rep,name=range_proof_alice,json=rangeProofAlice,proto3" json:"range_proof_alice,omitempty"` } -func (m *SignRound1Message1) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound1Message1.Unmarshal(m, b) -} -func (m *SignRound1Message1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound1Message1.Marshal(b, m, deterministic) -} -func (m *SignRound1Message1) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound1Message1.Merge(m, src) +func (x *SignRound1Message1) Reset() { + *x = SignRound1Message1{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound1Message1) XXX_Size() int { - return xxx_messageInfo_SignRound1Message1.Size(m) + +func (x *SignRound1Message1) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound1Message1) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound1Message1.DiscardUnknown(m) + +func (*SignRound1Message1) ProtoMessage() {} + +func (x *SignRound1Message1) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound1Message1 proto.InternalMessageInfo +// Deprecated: Use SignRound1Message1.ProtoReflect.Descriptor instead. +func (*SignRound1Message1) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{0} +} -func (m *SignRound1Message1) GetC() []byte { - if m != nil { - return m.C +func (x *SignRound1Message1) GetC() []byte { + if x != nil { + return x.C } return nil } -func (m *SignRound1Message1) GetRangeProofAlice() [][]byte { - if m != nil { - return m.RangeProofAlice +func (x *SignRound1Message1) GetRangeProofAlice() [][]byte { + if x != nil { + return x.RangeProofAlice } return nil } @@ -72,40 +86,48 @@ func (m *SignRound1Message1) GetRangeProofAlice() [][]byte { // // Represents a BROADCAST message sent to all parties during Round 1 of the ECDSA TSS signing protocol. type SignRound1Message2 struct { - Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound1Message2) Reset() { *m = SignRound1Message2{} } -func (m *SignRound1Message2) String() string { return proto.CompactTextString(m) } -func (*SignRound1Message2) ProtoMessage() {} -func (*SignRound1Message2) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{1} + Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` } -func (m *SignRound1Message2) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound1Message2.Unmarshal(m, b) -} -func (m *SignRound1Message2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound1Message2.Marshal(b, m, deterministic) -} -func (m *SignRound1Message2) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound1Message2.Merge(m, src) +func (x *SignRound1Message2) Reset() { + *x = SignRound1Message2{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound1Message2) XXX_Size() int { - return xxx_messageInfo_SignRound1Message2.Size(m) + +func (x *SignRound1Message2) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound1Message2) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound1Message2.DiscardUnknown(m) + +func (*SignRound1Message2) ProtoMessage() {} + +func (x *SignRound1Message2) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound1Message2 proto.InternalMessageInfo +// Deprecated: Use SignRound1Message2.ProtoReflect.Descriptor instead. +func (*SignRound1Message2) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{1} +} -func (m *SignRound1Message2) GetCommitment() []byte { - if m != nil { - return m.Commitment +func (x *SignRound1Message2) GetCommitment() []byte { + if x != nil { + return x.Commitment } return nil } @@ -113,64 +135,72 @@ func (m *SignRound1Message2) GetCommitment() []byte { // // Represents a P2P message sent to each party during Round 2 of the ECDSA TSS signing protocol. type SignRound2Message struct { - C1 []byte `protobuf:"bytes,1,opt,name=c1,proto3" json:"c1,omitempty"` - C2 []byte `protobuf:"bytes,2,opt,name=c2,proto3" json:"c2,omitempty"` - ProofBob [][]byte `protobuf:"bytes,3,rep,name=proof_bob,json=proofBob,proto3" json:"proof_bob,omitempty"` - ProofBobWc [][]byte `protobuf:"bytes,4,rep,name=proof_bob_wc,json=proofBobWc,proto3" json:"proof_bob_wc,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignRound2Message) Reset() { *m = SignRound2Message{} } -func (m *SignRound2Message) String() string { return proto.CompactTextString(m) } -func (*SignRound2Message) ProtoMessage() {} -func (*SignRound2Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{2} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + C1 []byte `protobuf:"bytes,1,opt,name=c1,proto3" json:"c1,omitempty"` + C2 []byte `protobuf:"bytes,2,opt,name=c2,proto3" json:"c2,omitempty"` + ProofBob [][]byte `protobuf:"bytes,3,rep,name=proof_bob,json=proofBob,proto3" json:"proof_bob,omitempty"` + ProofBobWc [][]byte `protobuf:"bytes,4,rep,name=proof_bob_wc,json=proofBobWc,proto3" json:"proof_bob_wc,omitempty"` +} + +func (x *SignRound2Message) Reset() { + *x = SignRound2Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound2Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound2Message.Unmarshal(m, b) -} -func (m *SignRound2Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound2Message.Marshal(b, m, deterministic) +func (x *SignRound2Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound2Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound2Message.Merge(m, src) -} -func (m *SignRound2Message) XXX_Size() int { - return xxx_messageInfo_SignRound2Message.Size(m) -} -func (m *SignRound2Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound2Message.DiscardUnknown(m) + +func (*SignRound2Message) ProtoMessage() {} + +func (x *SignRound2Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound2Message proto.InternalMessageInfo +// Deprecated: Use SignRound2Message.ProtoReflect.Descriptor instead. +func (*SignRound2Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{2} +} -func (m *SignRound2Message) GetC1() []byte { - if m != nil { - return m.C1 +func (x *SignRound2Message) GetC1() []byte { + if x != nil { + return x.C1 } return nil } -func (m *SignRound2Message) GetC2() []byte { - if m != nil { - return m.C2 +func (x *SignRound2Message) GetC2() []byte { + if x != nil { + return x.C2 } return nil } -func (m *SignRound2Message) GetProofBob() [][]byte { - if m != nil { - return m.ProofBob +func (x *SignRound2Message) GetProofBob() [][]byte { + if x != nil { + return x.ProofBob } return nil } -func (m *SignRound2Message) GetProofBobWc() [][]byte { - if m != nil { - return m.ProofBobWc +func (x *SignRound2Message) GetProofBobWc() [][]byte { + if x != nil { + return x.ProofBobWc } return nil } @@ -178,40 +208,48 @@ func (m *SignRound2Message) GetProofBobWc() [][]byte { // // Represents a BROADCAST message sent to all parties during Round 3 of the ECDSA TSS signing protocol. type SignRound3Message struct { - Theta []byte `protobuf:"bytes,1,opt,name=theta,proto3" json:"theta,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound3Message) Reset() { *m = SignRound3Message{} } -func (m *SignRound3Message) String() string { return proto.CompactTextString(m) } -func (*SignRound3Message) ProtoMessage() {} -func (*SignRound3Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{3} + Theta []byte `protobuf:"bytes,1,opt,name=theta,proto3" json:"theta,omitempty"` } -func (m *SignRound3Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound3Message.Unmarshal(m, b) -} -func (m *SignRound3Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound3Message.Marshal(b, m, deterministic) -} -func (m *SignRound3Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound3Message.Merge(m, src) +func (x *SignRound3Message) Reset() { + *x = SignRound3Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound3Message) XXX_Size() int { - return xxx_messageInfo_SignRound3Message.Size(m) + +func (x *SignRound3Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound3Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound3Message.DiscardUnknown(m) + +func (*SignRound3Message) ProtoMessage() {} + +func (x *SignRound3Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound3Message proto.InternalMessageInfo +// Deprecated: Use SignRound3Message.ProtoReflect.Descriptor instead. +func (*SignRound3Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{3} +} -func (m *SignRound3Message) GetTheta() []byte { - if m != nil { - return m.Theta +func (x *SignRound3Message) GetTheta() []byte { + if x != nil { + return x.Theta } return nil } @@ -219,64 +257,72 @@ func (m *SignRound3Message) GetTheta() []byte { // // Represents a BROADCAST message sent to all parties during Round 4 of the ECDSA TSS signing protocol. type SignRound4Message struct { - DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` - ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` - ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` - ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignRound4Message) Reset() { *m = SignRound4Message{} } -func (m *SignRound4Message) String() string { return proto.CompactTextString(m) } -func (*SignRound4Message) ProtoMessage() {} -func (*SignRound4Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{4} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` + ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` + ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` + ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` +} + +func (x *SignRound4Message) Reset() { + *x = SignRound4Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound4Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound4Message.Unmarshal(m, b) -} -func (m *SignRound4Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound4Message.Marshal(b, m, deterministic) -} -func (m *SignRound4Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound4Message.Merge(m, src) +func (x *SignRound4Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound4Message) XXX_Size() int { - return xxx_messageInfo_SignRound4Message.Size(m) -} -func (m *SignRound4Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound4Message.DiscardUnknown(m) + +func (*SignRound4Message) ProtoMessage() {} + +func (x *SignRound4Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound4Message proto.InternalMessageInfo +// Deprecated: Use SignRound4Message.ProtoReflect.Descriptor instead. +func (*SignRound4Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{4} +} -func (m *SignRound4Message) GetDeCommitment() [][]byte { - if m != nil { - return m.DeCommitment +func (x *SignRound4Message) GetDeCommitment() [][]byte { + if x != nil { + return x.DeCommitment } return nil } -func (m *SignRound4Message) GetProofAlphaX() []byte { - if m != nil { - return m.ProofAlphaX +func (x *SignRound4Message) GetProofAlphaX() []byte { + if x != nil { + return x.ProofAlphaX } return nil } -func (m *SignRound4Message) GetProofAlphaY() []byte { - if m != nil { - return m.ProofAlphaY +func (x *SignRound4Message) GetProofAlphaY() []byte { + if x != nil { + return x.ProofAlphaY } return nil } -func (m *SignRound4Message) GetProofT() []byte { - if m != nil { - return m.ProofT +func (x *SignRound4Message) GetProofT() []byte { + if x != nil { + return x.ProofT } return nil } @@ -284,40 +330,48 @@ func (m *SignRound4Message) GetProofT() []byte { // // Represents a BROADCAST message sent to all parties during Round 5 of the ECDSA TSS signing protocol. type SignRound5Message struct { - Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound5Message) Reset() { *m = SignRound5Message{} } -func (m *SignRound5Message) String() string { return proto.CompactTextString(m) } -func (*SignRound5Message) ProtoMessage() {} -func (*SignRound5Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{5} + Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` } -func (m *SignRound5Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound5Message.Unmarshal(m, b) -} -func (m *SignRound5Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound5Message.Marshal(b, m, deterministic) -} -func (m *SignRound5Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound5Message.Merge(m, src) +func (x *SignRound5Message) Reset() { + *x = SignRound5Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound5Message) XXX_Size() int { - return xxx_messageInfo_SignRound5Message.Size(m) + +func (x *SignRound5Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound5Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound5Message.DiscardUnknown(m) + +func (*SignRound5Message) ProtoMessage() {} + +func (x *SignRound5Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound5Message proto.InternalMessageInfo +// Deprecated: Use SignRound5Message.ProtoReflect.Descriptor instead. +func (*SignRound5Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{5} +} -func (m *SignRound5Message) GetCommitment() []byte { - if m != nil { - return m.Commitment +func (x *SignRound5Message) GetCommitment() []byte { + if x != nil { + return x.Commitment } return nil } @@ -325,96 +379,104 @@ func (m *SignRound5Message) GetCommitment() []byte { // // Represents a BROADCAST message sent to all parties during Round 6 of the ECDSA TSS signing protocol. type SignRound6Message struct { - DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` - ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` - ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` - ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` - VProofAlphaX []byte `protobuf:"bytes,5,opt,name=v_proof_alpha_x,json=vProofAlphaX,proto3" json:"v_proof_alpha_x,omitempty"` - VProofAlphaY []byte `protobuf:"bytes,6,opt,name=v_proof_alpha_y,json=vProofAlphaY,proto3" json:"v_proof_alpha_y,omitempty"` - VProofT []byte `protobuf:"bytes,7,opt,name=v_proof_t,json=vProofT,proto3" json:"v_proof_t,omitempty"` - VProofU []byte `protobuf:"bytes,8,opt,name=v_proof_u,json=vProofU,proto3" json:"v_proof_u,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignRound6Message) Reset() { *m = SignRound6Message{} } -func (m *SignRound6Message) String() string { return proto.CompactTextString(m) } -func (*SignRound6Message) ProtoMessage() {} -func (*SignRound6Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{6} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` + ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` + ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` + ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` + VProofAlphaX []byte `protobuf:"bytes,5,opt,name=v_proof_alpha_x,json=vProofAlphaX,proto3" json:"v_proof_alpha_x,omitempty"` + VProofAlphaY []byte `protobuf:"bytes,6,opt,name=v_proof_alpha_y,json=vProofAlphaY,proto3" json:"v_proof_alpha_y,omitempty"` + VProofT []byte `protobuf:"bytes,7,opt,name=v_proof_t,json=vProofT,proto3" json:"v_proof_t,omitempty"` + VProofU []byte `protobuf:"bytes,8,opt,name=v_proof_u,json=vProofU,proto3" json:"v_proof_u,omitempty"` +} + +func (x *SignRound6Message) Reset() { + *x = SignRound6Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound6Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound6Message.Unmarshal(m, b) -} -func (m *SignRound6Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound6Message.Marshal(b, m, deterministic) -} -func (m *SignRound6Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound6Message.Merge(m, src) -} -func (m *SignRound6Message) XXX_Size() int { - return xxx_messageInfo_SignRound6Message.Size(m) +func (x *SignRound6Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound6Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound6Message.DiscardUnknown(m) + +func (*SignRound6Message) ProtoMessage() {} + +func (x *SignRound6Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound6Message proto.InternalMessageInfo +// Deprecated: Use SignRound6Message.ProtoReflect.Descriptor instead. +func (*SignRound6Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{6} +} -func (m *SignRound6Message) GetDeCommitment() [][]byte { - if m != nil { - return m.DeCommitment +func (x *SignRound6Message) GetDeCommitment() [][]byte { + if x != nil { + return x.DeCommitment } return nil } -func (m *SignRound6Message) GetProofAlphaX() []byte { - if m != nil { - return m.ProofAlphaX +func (x *SignRound6Message) GetProofAlphaX() []byte { + if x != nil { + return x.ProofAlphaX } return nil } -func (m *SignRound6Message) GetProofAlphaY() []byte { - if m != nil { - return m.ProofAlphaY +func (x *SignRound6Message) GetProofAlphaY() []byte { + if x != nil { + return x.ProofAlphaY } return nil } -func (m *SignRound6Message) GetProofT() []byte { - if m != nil { - return m.ProofT +func (x *SignRound6Message) GetProofT() []byte { + if x != nil { + return x.ProofT } return nil } -func (m *SignRound6Message) GetVProofAlphaX() []byte { - if m != nil { - return m.VProofAlphaX +func (x *SignRound6Message) GetVProofAlphaX() []byte { + if x != nil { + return x.VProofAlphaX } return nil } -func (m *SignRound6Message) GetVProofAlphaY() []byte { - if m != nil { - return m.VProofAlphaY +func (x *SignRound6Message) GetVProofAlphaY() []byte { + if x != nil { + return x.VProofAlphaY } return nil } -func (m *SignRound6Message) GetVProofT() []byte { - if m != nil { - return m.VProofT +func (x *SignRound6Message) GetVProofT() []byte { + if x != nil { + return x.VProofT } return nil } -func (m *SignRound6Message) GetVProofU() []byte { - if m != nil { - return m.VProofU +func (x *SignRound6Message) GetVProofU() []byte { + if x != nil { + return x.VProofU } return nil } @@ -422,40 +484,48 @@ func (m *SignRound6Message) GetVProofU() []byte { // // Represents a BROADCAST message sent to all parties during Round 7 of the ECDSA TSS signing protocol. type SignRound7Message struct { - Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound7Message) Reset() { *m = SignRound7Message{} } -func (m *SignRound7Message) String() string { return proto.CompactTextString(m) } -func (*SignRound7Message) ProtoMessage() {} -func (*SignRound7Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{7} + Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` } -func (m *SignRound7Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound7Message.Unmarshal(m, b) -} -func (m *SignRound7Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound7Message.Marshal(b, m, deterministic) -} -func (m *SignRound7Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound7Message.Merge(m, src) +func (x *SignRound7Message) Reset() { + *x = SignRound7Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound7Message) XXX_Size() int { - return xxx_messageInfo_SignRound7Message.Size(m) + +func (x *SignRound7Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound7Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound7Message.DiscardUnknown(m) + +func (*SignRound7Message) ProtoMessage() {} + +func (x *SignRound7Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound7Message proto.InternalMessageInfo +// Deprecated: Use SignRound7Message.ProtoReflect.Descriptor instead. +func (*SignRound7Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{7} +} -func (m *SignRound7Message) GetCommitment() []byte { - if m != nil { - return m.Commitment +func (x *SignRound7Message) GetCommitment() []byte { + if x != nil { + return x.Commitment } return nil } @@ -463,40 +533,48 @@ func (m *SignRound7Message) GetCommitment() []byte { // // Represents a BROADCAST message sent to all parties during Round 8 of the ECDSA TSS signing protocol. type SignRound8Message struct { - DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound8Message) Reset() { *m = SignRound8Message{} } -func (m *SignRound8Message) String() string { return proto.CompactTextString(m) } -func (*SignRound8Message) ProtoMessage() {} -func (*SignRound8Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{8} + DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` } -func (m *SignRound8Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound8Message.Unmarshal(m, b) -} -func (m *SignRound8Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound8Message.Marshal(b, m, deterministic) -} -func (m *SignRound8Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound8Message.Merge(m, src) +func (x *SignRound8Message) Reset() { + *x = SignRound8Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound8Message) XXX_Size() int { - return xxx_messageInfo_SignRound8Message.Size(m) + +func (x *SignRound8Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound8Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound8Message.DiscardUnknown(m) + +func (*SignRound8Message) ProtoMessage() {} + +func (x *SignRound8Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound8Message proto.InternalMessageInfo +// Deprecated: Use SignRound8Message.ProtoReflect.Descriptor instead. +func (*SignRound8Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{8} +} -func (m *SignRound8Message) GetDeCommitment() [][]byte { - if m != nil { - return m.DeCommitment +func (x *SignRound8Message) GetDeCommitment() [][]byte { + if x != nil { + return x.DeCommitment } return nil } @@ -504,84 +582,296 @@ func (m *SignRound8Message) GetDeCommitment() [][]byte { // // Represents a BROADCAST message sent to all parties during Round 9 of the ECDSA TSS signing protocol. type SignRound9Message struct { - S []byte `protobuf:"bytes,1,opt,name=s,proto3" json:"s,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound9Message) Reset() { *m = SignRound9Message{} } -func (m *SignRound9Message) String() string { return proto.CompactTextString(m) } -func (*SignRound9Message) ProtoMessage() {} -func (*SignRound9Message) Descriptor() ([]byte, []int) { - return fileDescriptor_5f861bfc687bec19, []int{9} + S []byte `protobuf:"bytes,1,opt,name=s,proto3" json:"s,omitempty"` } -func (m *SignRound9Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound9Message.Unmarshal(m, b) -} -func (m *SignRound9Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound9Message.Marshal(b, m, deterministic) -} -func (m *SignRound9Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound9Message.Merge(m, src) +func (x *SignRound9Message) Reset() { + *x = SignRound9Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound9Message) XXX_Size() int { - return xxx_messageInfo_SignRound9Message.Size(m) + +func (x *SignRound9Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound9Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound9Message.DiscardUnknown(m) + +func (*SignRound9Message) ProtoMessage() {} + +func (x *SignRound9Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound9Message proto.InternalMessageInfo +// Deprecated: Use SignRound9Message.ProtoReflect.Descriptor instead. +func (*SignRound9Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{9} +} -func (m *SignRound9Message) GetS() []byte { - if m != nil { - return m.S +func (x *SignRound9Message) GetS() []byte { + if x != nil { + return x.S } return nil } -func init() { - proto.RegisterType((*SignRound1Message1)(nil), "SignRound1Message1") - proto.RegisterType((*SignRound1Message2)(nil), "SignRound1Message2") - proto.RegisterType((*SignRound2Message)(nil), "SignRound2Message") - proto.RegisterType((*SignRound3Message)(nil), "SignRound3Message") - proto.RegisterType((*SignRound4Message)(nil), "SignRound4Message") - proto.RegisterType((*SignRound5Message)(nil), "SignRound5Message") - proto.RegisterType((*SignRound6Message)(nil), "SignRound6Message") - proto.RegisterType((*SignRound7Message)(nil), "SignRound7Message") - proto.RegisterType((*SignRound8Message)(nil), "SignRound8Message") - proto.RegisterType((*SignRound9Message)(nil), "SignRound9Message") -} - -func init() { proto.RegisterFile("protob/ecdsa-signing.proto", fileDescriptor_5f861bfc687bec19) } - -var fileDescriptor_5f861bfc687bec19 = []byte{ - // 395 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x93, 0x5f, 0x4b, 0xe3, 0x40, - 0x14, 0xc5, 0x49, 0xfa, 0xff, 0x6e, 0xba, 0xa5, 0xc3, 0xc2, 0x0e, 0x5d, 0x58, 0xba, 0xb3, 0x2c, - 0x74, 0x17, 0xd6, 0x92, 0xb4, 0x6a, 0x7d, 0xb4, 0x3e, 0x2b, 0xa5, 0x56, 0xb4, 0xbe, 0x84, 0x64, - 0x32, 0xa6, 0x01, 0x9b, 0x09, 0x49, 0x5a, 0xed, 0x47, 0xf1, 0xc9, 0xaf, 0x2a, 0x9d, 0x64, 0xca, - 0xb4, 0x15, 0xd4, 0x37, 0x1f, 0xef, 0x3d, 0xbf, 0x3b, 0xe7, 0xce, 0x81, 0x0b, 0xad, 0x28, 0xe6, - 0x29, 0x77, 0xbb, 0x8c, 0x7a, 0x89, 0xf3, 0x3f, 0x09, 0xfc, 0x30, 0x08, 0xfd, 0x03, 0xd1, 0x24, - 0x17, 0x80, 0x2e, 0x03, 0x3f, 0x1c, 0xf3, 0x45, 0xe8, 0x99, 0xe7, 0x2c, 0x49, 0x1c, 0x9f, 0x99, - 0xc8, 0x00, 0x8d, 0x62, 0xad, 0xad, 0x75, 0x8c, 0xb1, 0x46, 0xd1, 0x3f, 0x68, 0xc6, 0x4e, 0xe8, - 0x33, 0x3b, 0x8a, 0x39, 0xbf, 0xb3, 0x9d, 0xfb, 0x80, 0x32, 0xac, 0xb7, 0x0b, 0x1d, 0x63, 0xdc, - 0x10, 0xc2, 0x68, 0xdd, 0x3f, 0x5d, 0xb7, 0x49, 0xff, 0x95, 0xf7, 0x2c, 0xf4, 0x13, 0x80, 0xf2, - 0xf9, 0x3c, 0x48, 0xe7, 0x2c, 0x4c, 0xf3, 0x87, 0x95, 0x0e, 0x89, 0xa1, 0xb9, 0x99, 0xb2, 0xf2, - 0x29, 0xf4, 0x15, 0x74, 0x6a, 0xe6, 0xb0, 0x4e, 0x4d, 0x51, 0x5b, 0x58, 0xcf, 0x6b, 0x0b, 0xfd, - 0x80, 0x5a, 0xb6, 0x90, 0xcb, 0x5d, 0x5c, 0x10, 0xeb, 0x54, 0x45, 0x63, 0xc8, 0x5d, 0xd4, 0x06, - 0x63, 0x23, 0xda, 0x0f, 0x14, 0x17, 0x85, 0x0e, 0x52, 0xbf, 0xa6, 0xe4, 0xaf, 0xe2, 0xd9, 0x93, - 0x9e, 0xdf, 0xa0, 0x94, 0xce, 0x58, 0xea, 0xe4, 0xb6, 0x59, 0x41, 0x9e, 0x34, 0x85, 0xed, 0x4b, - 0xf6, 0x37, 0xd4, 0x3d, 0x66, 0x6f, 0xfd, 0x6b, 0xed, 0x61, 0x78, 0xec, 0x6c, 0xd3, 0x43, 0x04, - 0xea, 0x32, 0xb5, 0x68, 0xe6, 0xd8, 0x8f, 0xf9, 0xfe, 0x5f, 0xa2, 0x2c, 0xb2, 0x68, 0xe6, 0xdc, - 0xec, 0x32, 0x2b, 0x5c, 0xd8, 0x65, 0xa6, 0xe8, 0x3b, 0x54, 0x32, 0x26, 0xc5, 0x45, 0xa1, 0x96, - 0x45, 0x39, 0x21, 0x3d, 0x65, 0xb5, 0x43, 0xb9, 0xda, 0x5b, 0x79, 0x3f, 0xeb, 0xca, 0xd4, 0xd1, - 0xa7, 0xfa, 0x10, 0xfa, 0x03, 0x8d, 0xa5, 0xbd, 0x6d, 0x51, 0x12, 0x80, 0xb1, 0x1c, 0x29, 0x1e, - 0x7b, 0xd8, 0x0a, 0x97, 0xf7, 0xb0, 0x29, 0x6a, 0x41, 0x4d, 0x62, 0x29, 0xae, 0x08, 0xa0, 0x92, - 0x01, 0x13, 0x55, 0x5b, 0xe0, 0xaa, 0xaa, 0x5d, 0x6d, 0xc5, 0x7a, 0xfc, 0xde, 0x58, 0x07, 0xca, - 0xd0, 0xe0, 0x23, 0xa9, 0x92, 0x5f, 0xca, 0xe4, 0x89, 0x9c, 0x34, 0x40, 0x4b, 0xe4, 0x15, 0x26, - 0xc3, 0xc6, 0x6d, 0x5d, 0x1c, 0x70, 0x37, 0x3f, 0x60, 0xb7, 0x2c, 0x2e, 0xb8, 0xf7, 0x12, 0x00, - 0x00, 0xff, 0xff, 0xe8, 0xdb, 0x9c, 0xf3, 0xdf, 0x03, 0x00, 0x00, +var File_protob_ecdsa_signing_proto protoreflect.FileDescriptor + +var file_protob_ecdsa_signing_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x65, 0x63, 0x64, 0x73, 0x61, 0x2d, 0x73, + 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x65, 0x63, + 0x64, 0x73, 0x61, 0x22, 0x4e, 0x0a, 0x12, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x0c, 0x0a, 0x01, 0x63, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x63, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0c, 0x52, 0x0f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, + 0x69, 0x63, 0x65, 0x22, 0x34, 0x0a, 0x12, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x72, 0x0a, 0x11, 0x53, 0x69, 0x67, + 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, + 0x0a, 0x02, 0x63, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x63, 0x31, 0x12, 0x0e, + 0x0a, 0x02, 0x63, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x63, 0x32, 0x12, 0x1b, + 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x62, 0x6f, 0x62, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x6f, 0x62, 0x12, 0x20, 0x0a, 0x0c, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x62, 0x6f, 0x62, 0x5f, 0x77, 0x63, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0c, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x6f, 0x62, 0x57, 0x63, 0x22, 0x29, 0x0a, + 0x11, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x68, 0x65, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x74, 0x68, 0x65, 0x74, 0x61, 0x22, 0x99, 0x01, 0x0a, 0x11, 0x53, 0x69, 0x67, + 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x34, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, + 0x0a, 0x0d, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x5f, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x58, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x59, 0x12, 0x17, 0x0a, 0x07, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, + 0x6f, 0x6f, 0x66, 0x54, 0x22, 0x33, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x35, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x9f, 0x02, 0x0a, 0x11, 0x53, 0x69, + 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x36, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, + 0x70, 0x68, 0x61, 0x5f, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x6f, + 0x6f, 0x66, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x58, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0b, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x59, 0x12, 0x17, 0x0a, 0x07, + 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x54, 0x12, 0x25, 0x0a, 0x0f, 0x76, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, + 0x76, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x58, 0x12, 0x25, 0x0a, 0x0f, + 0x76, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x76, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, + 0x68, 0x61, 0x59, 0x12, 0x1a, 0x0a, 0x09, 0x76, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x76, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x54, 0x12, + 0x1a, 0x0a, 0x09, 0x76, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x75, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x07, 0x76, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x55, 0x22, 0x33, 0x0a, 0x11, 0x53, + 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x37, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x38, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x38, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x21, 0x0a, 0x11, 0x53, 0x69, + 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x39, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x73, 0x42, 0x0f, 0x5a, + 0x0d, 0x65, 0x63, 0x64, 0x73, 0x61, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_protob_ecdsa_signing_proto_rawDescOnce sync.Once + file_protob_ecdsa_signing_proto_rawDescData = file_protob_ecdsa_signing_proto_rawDesc +) + +func file_protob_ecdsa_signing_proto_rawDescGZIP() []byte { + file_protob_ecdsa_signing_proto_rawDescOnce.Do(func() { + file_protob_ecdsa_signing_proto_rawDescData = protoimpl.X.CompressGZIP(file_protob_ecdsa_signing_proto_rawDescData) + }) + return file_protob_ecdsa_signing_proto_rawDescData +} + +var file_protob_ecdsa_signing_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_protob_ecdsa_signing_proto_goTypes = []interface{}{ + (*SignRound1Message1)(nil), // 0: ecdsa.SignRound1Message1 + (*SignRound1Message2)(nil), // 1: ecdsa.SignRound1Message2 + (*SignRound2Message)(nil), // 2: ecdsa.SignRound2Message + (*SignRound3Message)(nil), // 3: ecdsa.SignRound3Message + (*SignRound4Message)(nil), // 4: ecdsa.SignRound4Message + (*SignRound5Message)(nil), // 5: ecdsa.SignRound5Message + (*SignRound6Message)(nil), // 6: ecdsa.SignRound6Message + (*SignRound7Message)(nil), // 7: ecdsa.SignRound7Message + (*SignRound8Message)(nil), // 8: ecdsa.SignRound8Message + (*SignRound9Message)(nil), // 9: ecdsa.SignRound9Message +} +var file_protob_ecdsa_signing_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_protob_ecdsa_signing_proto_init() } +func file_protob_ecdsa_signing_proto_init() { + if File_protob_ecdsa_signing_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protob_ecdsa_signing_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound1Message1); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound1Message2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound2Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound3Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound4Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound5Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound6Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound7Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound8Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound9Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protob_ecdsa_signing_proto_rawDesc, + NumEnums: 0, + NumMessages: 10, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protob_ecdsa_signing_proto_goTypes, + DependencyIndexes: file_protob_ecdsa_signing_proto_depIdxs, + MessageInfos: file_protob_ecdsa_signing_proto_msgTypes, + }.Build() + File_protob_ecdsa_signing_proto = out.File + file_protob_ecdsa_signing_proto_rawDesc = nil + file_protob_ecdsa_signing_proto_goTypes = nil + file_protob_ecdsa_signing_proto_depIdxs = nil } diff --git a/ecdsa/signing/messages.go b/ecdsa/signing/messages.go index 3cbfa39d..e593c4d7 100644 --- a/ecdsa/signing/messages.go +++ b/ecdsa/signing/messages.go @@ -9,8 +9,6 @@ package signing import ( "math/big" - "github.com/golang/protobuf/proto" - "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" cmt "github.com/binance-chain/tss-lib/crypto/commitments" @@ -38,19 +36,6 @@ var ( } ) -func init() { - proto.RegisterType((*SignRound1Message1)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound1Message1") - proto.RegisterType((*SignRound1Message2)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound1Message2") - proto.RegisterType((*SignRound2Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound2Message") - proto.RegisterType((*SignRound3Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound3Message") - proto.RegisterType((*SignRound4Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound4Message") - proto.RegisterType((*SignRound5Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound5Message") - proto.RegisterType((*SignRound6Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound6Message") - proto.RegisterType((*SignRound7Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound7Message") - proto.RegisterType((*SignRound8Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound8Message") - proto.RegisterType((*SignRound9Message)(nil), tss.ECDSAProtoNamePrefix+"signing.SignRound9Message") -} - // ----- // func NewSignRound1Message1( diff --git a/eddsa/keygen/eddsa-keygen.pb.go b/eddsa/keygen/eddsa-keygen.pb.go index 7fd26e62..bdd0ff24 100644 --- a/eddsa/keygen/eddsa-keygen.pb.go +++ b/eddsa/keygen/eddsa-keygen.pb.go @@ -1,62 +1,76 @@ +// Copyright © 2019 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. -// source: eddsa-keygen.proto +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: protob/eddsa-keygen.proto package keygen import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // // Represents a BROADCAST message sent during Round 1 of the EDDSA TSS keygen protocol. type KGRound1Message struct { - Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *KGRound1Message) Reset() { *m = KGRound1Message{} } -func (m *KGRound1Message) String() string { return proto.CompactTextString(m) } -func (*KGRound1Message) ProtoMessage() {} -func (*KGRound1Message) Descriptor() ([]byte, []int) { - return fileDescriptor_87f3b4615ca57212, []int{0} + Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` } -func (m *KGRound1Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KGRound1Message.Unmarshal(m, b) -} -func (m *KGRound1Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KGRound1Message.Marshal(b, m, deterministic) -} -func (m *KGRound1Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_KGRound1Message.Merge(m, src) +func (x *KGRound1Message) Reset() { + *x = KGRound1Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_keygen_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *KGRound1Message) XXX_Size() int { - return xxx_messageInfo_KGRound1Message.Size(m) + +func (x *KGRound1Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *KGRound1Message) XXX_DiscardUnknown() { - xxx_messageInfo_KGRound1Message.DiscardUnknown(m) + +func (*KGRound1Message) ProtoMessage() {} + +func (x *KGRound1Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_keygen_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_KGRound1Message proto.InternalMessageInfo +// Deprecated: Use KGRound1Message.ProtoReflect.Descriptor instead. +func (*KGRound1Message) Descriptor() ([]byte, []int) { + return file_protob_eddsa_keygen_proto_rawDescGZIP(), []int{0} +} -func (m *KGRound1Message) GetCommitment() []byte { - if m != nil { - return m.Commitment +func (x *KGRound1Message) GetCommitment() []byte { + if x != nil { + return x.Commitment } return nil } @@ -64,40 +78,48 @@ func (m *KGRound1Message) GetCommitment() []byte { // // Represents a P2P message sent to each party during Round 2 of the EDDSA TSS keygen protocol. type KGRound2Message1 struct { - Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *KGRound2Message1) Reset() { *m = KGRound2Message1{} } -func (m *KGRound2Message1) String() string { return proto.CompactTextString(m) } -func (*KGRound2Message1) ProtoMessage() {} -func (*KGRound2Message1) Descriptor() ([]byte, []int) { - return fileDescriptor_87f3b4615ca57212, []int{1} + Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` } -func (m *KGRound2Message1) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KGRound2Message1.Unmarshal(m, b) -} -func (m *KGRound2Message1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KGRound2Message1.Marshal(b, m, deterministic) -} -func (m *KGRound2Message1) XXX_Merge(src proto.Message) { - xxx_messageInfo_KGRound2Message1.Merge(m, src) +func (x *KGRound2Message1) Reset() { + *x = KGRound2Message1{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_keygen_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *KGRound2Message1) XXX_Size() int { - return xxx_messageInfo_KGRound2Message1.Size(m) + +func (x *KGRound2Message1) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *KGRound2Message1) XXX_DiscardUnknown() { - xxx_messageInfo_KGRound2Message1.DiscardUnknown(m) + +func (*KGRound2Message1) ProtoMessage() {} + +func (x *KGRound2Message1) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_keygen_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_KGRound2Message1 proto.InternalMessageInfo +// Deprecated: Use KGRound2Message1.ProtoReflect.Descriptor instead. +func (*KGRound2Message1) Descriptor() ([]byte, []int) { + return file_protob_eddsa_keygen_proto_rawDescGZIP(), []int{1} +} -func (m *KGRound2Message1) GetShare() []byte { - if m != nil { - return m.Share +func (x *KGRound2Message1) GetShare() []byte { + if x != nil { + return x.Share } return nil } @@ -105,89 +127,186 @@ func (m *KGRound2Message1) GetShare() []byte { // // Represents a BROADCAST message sent to each party during Round 2 of the EDDSA TSS keygen protocol. type KGRound2Message2 struct { - DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` - ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` - ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` - ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *KGRound2Message2) Reset() { *m = KGRound2Message2{} } -func (m *KGRound2Message2) String() string { return proto.CompactTextString(m) } -func (*KGRound2Message2) ProtoMessage() {} -func (*KGRound2Message2) Descriptor() ([]byte, []int) { - return fileDescriptor_87f3b4615ca57212, []int{2} -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *KGRound2Message2) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KGRound2Message2.Unmarshal(m, b) + DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` + ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` + ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` + ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` } -func (m *KGRound2Message2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KGRound2Message2.Marshal(b, m, deterministic) -} -func (m *KGRound2Message2) XXX_Merge(src proto.Message) { - xxx_messageInfo_KGRound2Message2.Merge(m, src) + +func (x *KGRound2Message2) Reset() { + *x = KGRound2Message2{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_keygen_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *KGRound2Message2) XXX_Size() int { - return xxx_messageInfo_KGRound2Message2.Size(m) + +func (x *KGRound2Message2) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *KGRound2Message2) XXX_DiscardUnknown() { - xxx_messageInfo_KGRound2Message2.DiscardUnknown(m) + +func (*KGRound2Message2) ProtoMessage() {} + +func (x *KGRound2Message2) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_keygen_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_KGRound2Message2 proto.InternalMessageInfo +// Deprecated: Use KGRound2Message2.ProtoReflect.Descriptor instead. +func (*KGRound2Message2) Descriptor() ([]byte, []int) { + return file_protob_eddsa_keygen_proto_rawDescGZIP(), []int{2} +} -func (m *KGRound2Message2) GetDeCommitment() [][]byte { - if m != nil { - return m.DeCommitment +func (x *KGRound2Message2) GetDeCommitment() [][]byte { + if x != nil { + return x.DeCommitment } return nil } -func (m *KGRound2Message2) GetProofAlphaX() []byte { - if m != nil { - return m.ProofAlphaX +func (x *KGRound2Message2) GetProofAlphaX() []byte { + if x != nil { + return x.ProofAlphaX } return nil } -func (m *KGRound2Message2) GetProofAlphaY() []byte { - if m != nil { - return m.ProofAlphaY +func (x *KGRound2Message2) GetProofAlphaY() []byte { + if x != nil { + return x.ProofAlphaY } return nil } -func (m *KGRound2Message2) GetProofT() []byte { - if m != nil { - return m.ProofT +func (x *KGRound2Message2) GetProofT() []byte { + if x != nil { + return x.ProofT } return nil } -func init() { - proto.RegisterType((*KGRound1Message)(nil), "KGRound1Message") - proto.RegisterType((*KGRound2Message1)(nil), "KGRound2Message1") - proto.RegisterType((*KGRound2Message2)(nil), "KGRound2Message2") -} - -func init() { proto.RegisterFile("eddsa-keygen.proto", fileDescriptor_87f3b4615ca57212) } - -var fileDescriptor_87f3b4615ca57212 = []byte{ - // 200 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4a, 0x4d, 0x49, 0x29, - 0x4e, 0xd4, 0xcd, 0x4e, 0xad, 0x4c, 0x4f, 0xcd, 0xd3, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x57, 0x32, - 0xe4, 0xe2, 0xf7, 0x76, 0x0f, 0xca, 0x2f, 0xcd, 0x4b, 0x31, 0xf4, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c, - 0x4f, 0x15, 0x92, 0xe3, 0xe2, 0x4a, 0xce, 0xcf, 0xcd, 0xcd, 0x2c, 0xc9, 0x4d, 0xcd, 0x2b, 0x91, - 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x09, 0x42, 0x12, 0x51, 0xd2, 0xe0, 0x12, 0x80, 0x6a, 0x31, 0x82, - 0x6a, 0x31, 0x14, 0x12, 0xe1, 0x62, 0x2d, 0xce, 0x48, 0x2c, 0x4a, 0x85, 0x2a, 0x87, 0x70, 0x94, - 0x66, 0x30, 0x62, 0x28, 0x35, 0x12, 0x52, 0xe6, 0xe2, 0x4d, 0x49, 0x8d, 0x47, 0xb1, 0x81, 0x59, - 0x83, 0x27, 0x88, 0x27, 0x25, 0xd5, 0x19, 0x2e, 0x26, 0xa4, 0xc4, 0xc5, 0x5b, 0x50, 0x94, 0x9f, - 0x9f, 0x16, 0x9f, 0x98, 0x53, 0x90, 0x91, 0x18, 0x5f, 0x21, 0xc1, 0x04, 0x36, 0x97, 0x1b, 0x2c, - 0xe8, 0x08, 0x12, 0x8b, 0x40, 0x57, 0x53, 0x29, 0xc1, 0x8c, 0xae, 0x26, 0x52, 0x48, 0x9c, 0x8b, - 0x1d, 0xa2, 0xa6, 0x44, 0x82, 0x05, 0x2c, 0xcb, 0x06, 0xe6, 0x86, 0x38, 0xf1, 0x45, 0xf1, 0x80, - 0x43, 0x43, 0x1f, 0x12, 0x1a, 0x49, 0x6c, 0xe0, 0xe0, 0x30, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, - 0x61, 0x46, 0xe6, 0x18, 0x24, 0x01, 0x00, 0x00, +var File_protob_eddsa_keygen_proto protoreflect.FileDescriptor + +var file_protob_eddsa_keygen_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x65, 0x64, 0x64, 0x73, 0x61, 0x2d, 0x6b, + 0x65, 0x79, 0x67, 0x65, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x65, 0x64, 0x64, + 0x73, 0x61, 0x22, 0x31, 0x0a, 0x0f, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x31, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x28, 0x0a, 0x10, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x22, + 0x98, 0x01, 0x0a, 0x10, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x32, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x43, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, + 0x6f, 0x66, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x58, 0x12, 0x22, 0x0a, + 0x0d, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, 0x68, 0x61, + 0x59, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x54, 0x42, 0x0e, 0x5a, 0x0c, 0x65, 0x64, + 0x64, 0x73, 0x61, 0x2f, 0x6b, 0x65, 0x79, 0x67, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_protob_eddsa_keygen_proto_rawDescOnce sync.Once + file_protob_eddsa_keygen_proto_rawDescData = file_protob_eddsa_keygen_proto_rawDesc +) + +func file_protob_eddsa_keygen_proto_rawDescGZIP() []byte { + file_protob_eddsa_keygen_proto_rawDescOnce.Do(func() { + file_protob_eddsa_keygen_proto_rawDescData = protoimpl.X.CompressGZIP(file_protob_eddsa_keygen_proto_rawDescData) + }) + return file_protob_eddsa_keygen_proto_rawDescData +} + +var file_protob_eddsa_keygen_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_protob_eddsa_keygen_proto_goTypes = []interface{}{ + (*KGRound1Message)(nil), // 0: eddsa.KGRound1Message + (*KGRound2Message1)(nil), // 1: eddsa.KGRound2Message1 + (*KGRound2Message2)(nil), // 2: eddsa.KGRound2Message2 +} +var file_protob_eddsa_keygen_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_protob_eddsa_keygen_proto_init() } +func file_protob_eddsa_keygen_proto_init() { + if File_protob_eddsa_keygen_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protob_eddsa_keygen_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KGRound1Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_keygen_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KGRound2Message1); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_keygen_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KGRound2Message2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protob_eddsa_keygen_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protob_eddsa_keygen_proto_goTypes, + DependencyIndexes: file_protob_eddsa_keygen_proto_depIdxs, + MessageInfos: file_protob_eddsa_keygen_proto_msgTypes, + }.Build() + File_protob_eddsa_keygen_proto = out.File + file_protob_eddsa_keygen_proto_rawDesc = nil + file_protob_eddsa_keygen_proto_goTypes = nil + file_protob_eddsa_keygen_proto_depIdxs = nil } diff --git a/eddsa/keygen/messages.go b/eddsa/keygen/messages.go index 8bcfd650..97f150ec 100644 --- a/eddsa/keygen/messages.go +++ b/eddsa/keygen/messages.go @@ -9,8 +9,6 @@ package keygen import ( "math/big" - "github.com/golang/protobuf/proto" - "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" cmt "github.com/binance-chain/tss-lib/crypto/commitments" @@ -31,12 +29,6 @@ var ( } ) -func init() { - proto.RegisterType((*KGRound1Message)(nil), tss.EDDSAProtoNamePrefix+"keygen.KGRound1Message") - proto.RegisterType((*KGRound2Message1)(nil), tss.EDDSAProtoNamePrefix+"keygen.KGRound2Message1") - proto.RegisterType((*KGRound2Message2)(nil), tss.EDDSAProtoNamePrefix+"keygen.KGRound2Message2") -} - // ----- // func NewKGRound1Message(from *tss.PartyID, ct cmt.HashCommitment) tss.ParsedMessage { diff --git a/eddsa/resharing/eddsa-resharing.pb.go b/eddsa/resharing/eddsa-resharing.pb.go index b581313a..c2c13b28 100644 --- a/eddsa/resharing/eddsa-resharing.pb.go +++ b/eddsa/resharing/eddsa-resharing.pb.go @@ -1,153 +1,181 @@ +// Copyright © 2019 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. -// source: eddsa-resharing.proto +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: protob/eddsa-resharing.proto package resharing import ( - fmt "fmt" - math "math" - - proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // // The Round 1 data is broadcast to peers of the New Committee in this message. type DGRound1Message struct { - EddsaPubX []byte `protobuf:"bytes,1,opt,name=eddsa_pub_x,json=eddsaPubX,proto3" json:"eddsa_pub_x,omitempty"` - EddsaPubY []byte `protobuf:"bytes,2,opt,name=eddsa_pub_y,json=eddsaPubY,proto3" json:"eddsa_pub_y,omitempty"` - VCommitment []byte `protobuf:"bytes,3,opt,name=v_commitment,json=vCommitment,proto3" json:"v_commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DGRound1Message) Reset() { *m = DGRound1Message{} } -func (m *DGRound1Message) String() string { return proto.CompactTextString(m) } -func (*DGRound1Message) ProtoMessage() {} -func (*DGRound1Message) Descriptor() ([]byte, []int) { - return fileDescriptor_d6ac4d7ec55a8fe1, []int{0} + EddsaPubX []byte `protobuf:"bytes,1,opt,name=eddsa_pub_x,json=eddsaPubX,proto3" json:"eddsa_pub_x,omitempty"` + EddsaPubY []byte `protobuf:"bytes,2,opt,name=eddsa_pub_y,json=eddsaPubY,proto3" json:"eddsa_pub_y,omitempty"` + VCommitment []byte `protobuf:"bytes,3,opt,name=v_commitment,json=vCommitment,proto3" json:"v_commitment,omitempty"` } -func (m *DGRound1Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound1Message.Unmarshal(m, b) -} -func (m *DGRound1Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound1Message.Marshal(b, m, deterministic) -} -func (m *DGRound1Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound1Message.Merge(m, src) +func (x *DGRound1Message) Reset() { + *x = DGRound1Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_resharing_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound1Message) XXX_Size() int { - return xxx_messageInfo_DGRound1Message.Size(m) + +func (x *DGRound1Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound1Message) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound1Message.DiscardUnknown(m) + +func (*DGRound1Message) ProtoMessage() {} + +func (x *DGRound1Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_resharing_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound1Message proto.InternalMessageInfo +// Deprecated: Use DGRound1Message.ProtoReflect.Descriptor instead. +func (*DGRound1Message) Descriptor() ([]byte, []int) { + return file_protob_eddsa_resharing_proto_rawDescGZIP(), []int{0} +} -func (m *DGRound1Message) GetEddsaPubX() []byte { - if m != nil { - return m.EddsaPubX +func (x *DGRound1Message) GetEddsaPubX() []byte { + if x != nil { + return x.EddsaPubX } return nil } -func (m *DGRound1Message) GetEddsaPubY() []byte { - if m != nil { - return m.EddsaPubY +func (x *DGRound1Message) GetEddsaPubY() []byte { + if x != nil { + return x.EddsaPubY } return nil } -func (m *DGRound1Message) GetVCommitment() []byte { - if m != nil { - return m.VCommitment +func (x *DGRound1Message) GetVCommitment() []byte { + if x != nil { + return x.VCommitment } return nil } // // The Round 2 "ACK" is broadcast to peers of the Old Committee in this message. -type DGRound2Message struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type DGRound2Message2 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DGRound2Message2) Reset() { + *x = DGRound2Message2{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_resharing_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound2Message) Reset() { *m = DGRound2Message{} } -func (m *DGRound2Message) String() string { return proto.CompactTextString(m) } -func (*DGRound2Message) ProtoMessage() {} -func (*DGRound2Message) Descriptor() ([]byte, []int) { - return fileDescriptor_d6ac4d7ec55a8fe1, []int{1} +func (x *DGRound2Message2) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound2Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound2Message2.Unmarshal(m, b) -} -func (m *DGRound2Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound2Message2.Marshal(b, m, deterministic) -} -func (m *DGRound2Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound2Message2.Merge(m, src) -} -func (m *DGRound2Message) XXX_Size() int { - return xxx_messageInfo_DGRound2Message2.Size(m) -} -func (m *DGRound2Message) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound2Message2.DiscardUnknown(m) +func (*DGRound2Message2) ProtoMessage() {} + +func (x *DGRound2Message2) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_resharing_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound2Message2 proto.InternalMessageInfo +// Deprecated: Use DGRound2Message2.ProtoReflect.Descriptor instead. +func (*DGRound2Message2) Descriptor() ([]byte, []int) { + return file_protob_eddsa_resharing_proto_rawDescGZIP(), []int{1} +} // // The Round 3 data is sent to peers of the New Committee in this message. type DGRound3Message1 struct { - Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DGRound3Message1) Reset() { *m = DGRound3Message1{} } -func (m *DGRound3Message1) String() string { return proto.CompactTextString(m) } -func (*DGRound3Message1) ProtoMessage() {} -func (*DGRound3Message1) Descriptor() ([]byte, []int) { - return fileDescriptor_d6ac4d7ec55a8fe1, []int{2} + Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` } -func (m *DGRound3Message1) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound3Message1.Unmarshal(m, b) -} -func (m *DGRound3Message1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound3Message1.Marshal(b, m, deterministic) -} -func (m *DGRound3Message1) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound3Message1.Merge(m, src) +func (x *DGRound3Message1) Reset() { + *x = DGRound3Message1{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_resharing_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound3Message1) XXX_Size() int { - return xxx_messageInfo_DGRound3Message1.Size(m) + +func (x *DGRound3Message1) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound3Message1) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound3Message1.DiscardUnknown(m) + +func (*DGRound3Message1) ProtoMessage() {} + +func (x *DGRound3Message1) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_resharing_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound3Message1 proto.InternalMessageInfo +// Deprecated: Use DGRound3Message1.ProtoReflect.Descriptor instead. +func (*DGRound3Message1) Descriptor() ([]byte, []int) { + return file_protob_eddsa_resharing_proto_rawDescGZIP(), []int{2} +} -func (m *DGRound3Message1) GetShare() []byte { - if m != nil { - return m.Share +func (x *DGRound3Message1) GetShare() []byte { + if x != nil { + return x.Share } return nil } @@ -155,40 +183,48 @@ func (m *DGRound3Message1) GetShare() []byte { // // The Round 3 data is broadcast to peers of the New Committee in this message. type DGRound3Message2 struct { - VDecommitment [][]byte `protobuf:"bytes,1,rep,name=v_decommitment,json=vDecommitment,proto3" json:"v_decommitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DGRound3Message2) Reset() { *m = DGRound3Message2{} } -func (m *DGRound3Message2) String() string { return proto.CompactTextString(m) } -func (*DGRound3Message2) ProtoMessage() {} -func (*DGRound3Message2) Descriptor() ([]byte, []int) { - return fileDescriptor_d6ac4d7ec55a8fe1, []int{3} + VDecommitment [][]byte `protobuf:"bytes,1,rep,name=v_decommitment,json=vDecommitment,proto3" json:"v_decommitment,omitempty"` } -func (m *DGRound3Message2) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound3Message2.Unmarshal(m, b) -} -func (m *DGRound3Message2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound3Message2.Marshal(b, m, deterministic) -} -func (m *DGRound3Message2) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound3Message2.Merge(m, src) +func (x *DGRound3Message2) Reset() { + *x = DGRound3Message2{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_resharing_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound3Message2) XXX_Size() int { - return xxx_messageInfo_DGRound3Message2.Size(m) + +func (x *DGRound3Message2) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound3Message2) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound3Message2.DiscardUnknown(m) + +func (*DGRound3Message2) ProtoMessage() {} + +func (x *DGRound3Message2) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_resharing_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound3Message2 proto.InternalMessageInfo +// Deprecated: Use DGRound3Message2.ProtoReflect.Descriptor instead. +func (*DGRound3Message2) Descriptor() ([]byte, []int) { + return file_protob_eddsa_resharing_proto_rawDescGZIP(), []int{3} +} -func (m *DGRound3Message2) GetVDecommitment() [][]byte { - if m != nil { - return m.VDecommitment +func (x *DGRound3Message2) GetVDecommitment() [][]byte { + if x != nil { + return x.VDecommitment } return nil } @@ -196,59 +232,180 @@ func (m *DGRound3Message2) GetVDecommitment() [][]byte { // // The Round 4 "ACK" is broadcast to peers of the Old and New Committees from the New Committee in this message. type DGRound4Message struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (m *DGRound4Message) Reset() { *m = DGRound4Message{} } -func (m *DGRound4Message) String() string { return proto.CompactTextString(m) } -func (*DGRound4Message) ProtoMessage() {} -func (*DGRound4Message) Descriptor() ([]byte, []int) { - return fileDescriptor_d6ac4d7ec55a8fe1, []int{4} +func (x *DGRound4Message) Reset() { + *x = DGRound4Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_resharing_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound4Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound4Message.Unmarshal(m, b) -} -func (m *DGRound4Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound4Message.Marshal(b, m, deterministic) -} -func (m *DGRound4Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound4Message.Merge(m, src) -} -func (m *DGRound4Message) XXX_Size() int { - return xxx_messageInfo_DGRound4Message.Size(m) -} -func (m *DGRound4Message) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound4Message.DiscardUnknown(m) +func (x *DGRound4Message) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_DGRound4Message proto.InternalMessageInfo +func (*DGRound4Message) ProtoMessage() {} -func init() { - proto.RegisterType((*DGRound1Message)(nil), "DGRound1Message") - proto.RegisterType((*DGRound2Message)(nil), "DGRound2Message") - proto.RegisterType((*DGRound3Message1)(nil), "DGRound3Message1") - proto.RegisterType((*DGRound3Message2)(nil), "DGRound3Message2") - proto.RegisterType((*DGRound4Message)(nil), "DGRound4Message") +func (x *DGRound4Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_resharing_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func init() { proto.RegisterFile("eddsa-resharing.proto", fileDescriptor_d6ac4d7ec55a8fe1) } +// Deprecated: Use DGRound4Message.ProtoReflect.Descriptor instead. +func (*DGRound4Message) Descriptor() ([]byte, []int) { + return file_protob_eddsa_resharing_proto_rawDescGZIP(), []int{4} +} + +var File_protob_eddsa_resharing_proto protoreflect.FileDescriptor + +var file_protob_eddsa_resharing_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x65, 0x64, 0x64, 0x73, 0x61, 0x2d, 0x72, + 0x65, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, + 0x65, 0x64, 0x64, 0x73, 0x61, 0x22, 0x74, 0x0a, 0x0f, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x64, 0x64, 0x73, + 0x61, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, + 0x64, 0x64, 0x73, 0x61, 0x50, 0x75, 0x62, 0x58, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x64, 0x64, 0x73, + 0x61, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, + 0x64, 0x64, 0x73, 0x61, 0x50, 0x75, 0x62, 0x59, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x5f, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, + 0x76, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x44, + 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x22, + 0x28, 0x0a, 0x10, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x47, 0x52, + 0x6f, 0x75, 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0x25, 0x0a, + 0x0e, 0x76, 0x5f, 0x64, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x76, 0x44, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x34, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x11, 0x5a, 0x0f, 0x65, 0x64, 0x64, 0x73, 0x61, + 0x2f, 0x72, 0x65, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_protob_eddsa_resharing_proto_rawDescOnce sync.Once + file_protob_eddsa_resharing_proto_rawDescData = file_protob_eddsa_resharing_proto_rawDesc +) -var fileDescriptor_d6ac4d7ec55a8fe1 = []byte{ - // 203 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4d, 0x4d, 0x49, 0x29, - 0x4e, 0xd4, 0x2d, 0x4a, 0x2d, 0xce, 0x48, 0x2c, 0xca, 0xcc, 0x4b, 0xd7, 0x2b, 0x28, 0xca, 0x2f, - 0xc9, 0x57, 0x2a, 0xe1, 0xe2, 0x77, 0x71, 0x0f, 0xca, 0x2f, 0xcd, 0x4b, 0x31, 0xf4, 0x4d, 0x2d, - 0x2e, 0x4e, 0x4c, 0x4f, 0x15, 0x92, 0xe3, 0xe2, 0x06, 0xab, 0x8d, 0x2f, 0x28, 0x4d, 0x8a, 0xaf, - 0x90, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x09, 0xe2, 0x04, 0x0b, 0x05, 0x94, 0x26, 0x45, 0xa0, 0xca, - 0x57, 0x4a, 0x30, 0xa1, 0xca, 0x47, 0x0a, 0x29, 0x72, 0xf1, 0x94, 0xc5, 0x27, 0xe7, 0xe7, 0xe6, - 0x66, 0x96, 0xe4, 0xa6, 0xe6, 0x95, 0x48, 0x30, 0x83, 0x15, 0x70, 0x97, 0x39, 0xc3, 0x85, 0x94, - 0x84, 0xb8, 0x04, 0xa0, 0xb6, 0x1a, 0x41, 0x6d, 0x35, 0x52, 0xd2, 0x80, 0x8b, 0x19, 0x43, 0xc5, - 0x0c, 0x85, 0x44, 0xb8, 0x58, 0x41, 0xce, 0x4d, 0x85, 0x3a, 0x02, 0xc2, 0x51, 0xb2, 0xc4, 0x50, - 0x69, 0x24, 0xa4, 0xca, 0xc5, 0x57, 0x16, 0x9f, 0x92, 0x8a, 0x64, 0x2d, 0xa3, 0x02, 0xb3, 0x06, - 0x4f, 0x10, 0x6f, 0x99, 0x0b, 0x92, 0xa0, 0x92, 0x20, 0xdc, 0xbb, 0x26, 0x50, 0xad, 0x4e, 0x82, - 0x51, 0xfc, 0x60, 0xb7, 0xeb, 0xc3, 0x83, 0x26, 0x89, 0x0d, 0x1c, 0x36, 0xc6, 0x80, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x76, 0xdf, 0xde, 0x85, 0x34, 0x01, 0x00, 0x00, +func file_protob_eddsa_resharing_proto_rawDescGZIP() []byte { + file_protob_eddsa_resharing_proto_rawDescOnce.Do(func() { + file_protob_eddsa_resharing_proto_rawDescData = protoimpl.X.CompressGZIP(file_protob_eddsa_resharing_proto_rawDescData) + }) + return file_protob_eddsa_resharing_proto_rawDescData +} + +var file_protob_eddsa_resharing_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_protob_eddsa_resharing_proto_goTypes = []interface{}{ + (*DGRound1Message)(nil), // 0: eddsa.DGRound1Message + (*DGRound2Message2)(nil), // 1: eddsa.DGRound2Message2 + (*DGRound3Message1)(nil), // 2: eddsa.DGRound3Message1 + (*DGRound3Message2)(nil), // 3: eddsa.DGRound3Message2 + (*DGRound4Message)(nil), // 4: eddsa.DGRound4Message +} +var file_protob_eddsa_resharing_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_protob_eddsa_resharing_proto_init() } +func file_protob_eddsa_resharing_proto_init() { + if File_protob_eddsa_resharing_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protob_eddsa_resharing_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound1Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_resharing_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound2Message2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_resharing_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound3Message1); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_resharing_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound3Message2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_resharing_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound4Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protob_eddsa_resharing_proto_rawDesc, + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protob_eddsa_resharing_proto_goTypes, + DependencyIndexes: file_protob_eddsa_resharing_proto_depIdxs, + MessageInfos: file_protob_eddsa_resharing_proto_msgTypes, + }.Build() + File_protob_eddsa_resharing_proto = out.File + file_protob_eddsa_resharing_proto_rawDesc = nil + file_protob_eddsa_resharing_proto_goTypes = nil + file_protob_eddsa_resharing_proto_depIdxs = nil } diff --git a/eddsa/resharing/local_party.go b/eddsa/resharing/local_party.go index 2b7b7469..3960a04f 100644 --- a/eddsa/resharing/local_party.go +++ b/eddsa/resharing/local_party.go @@ -120,7 +120,7 @@ func (p *LocalParty) ValidateMessage(msg tss.ParsedMessage) (bool, *tss.Error) { // check that the message's "from index" will fit into the array var maxFromIdx int switch msg.Content().(type) { - case *DGRound2Message, *DGRound4Message: + case *DGRound2Message2, *DGRound4Message: maxFromIdx = len(p.params.NewParties().IDs()) - 1 default: maxFromIdx = len(p.params.OldParties().IDs()) - 1 @@ -144,7 +144,7 @@ func (p *LocalParty) StoreMessage(msg tss.ParsedMessage) (bool, *tss.Error) { switch msg.Content().(type) { case *DGRound1Message: p.temp.dgRound1Messages[fromPIdx] = msg - case *DGRound2Message: + case *DGRound2Message2: p.temp.dgRound2Messages[fromPIdx] = msg case *DGRound3Message1: p.temp.dgRound3Message1s[fromPIdx] = msg diff --git a/eddsa/resharing/messages.go b/eddsa/resharing/messages.go index ccc7733c..e76a1bb9 100644 --- a/eddsa/resharing/messages.go +++ b/eddsa/resharing/messages.go @@ -9,8 +9,6 @@ package resharing import ( "math/big" - "github.com/golang/protobuf/proto" - "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" cmt "github.com/binance-chain/tss-lib/crypto/commitments" @@ -24,20 +22,13 @@ var ( // Ensure that signing messages implement ValidateBasic _ = []tss.MessageContent{ (*DGRound1Message)(nil), - (*DGRound2Message)(nil), + (*DGRound2Message2)(nil), (*DGRound3Message1)(nil), (*DGRound3Message2)(nil), + (*DGRound4Message)(nil), } ) -func init() { - proto.RegisterType((*DGRound1Message)(nil), tss.EDDSAProtoNamePrefix+"resharing.DGRound1Message") - proto.RegisterType((*DGRound2Message)(nil), tss.EDDSAProtoNamePrefix+"resharing.DGRound2Message") - proto.RegisterType((*DGRound3Message1)(nil), tss.EDDSAProtoNamePrefix+"resharing.DGRound3Message1") - proto.RegisterType((*DGRound3Message2)(nil), tss.EDDSAProtoNamePrefix+"resharing.DGRound3Message2") - proto.RegisterType((*DGRound4Message)(nil), tss.EDDSAProtoNamePrefix+"resharing.DGRound4Message") -} - // ----- // func NewDGRound1Message( @@ -91,12 +82,12 @@ func NewDGRound2Message( IsBroadcast: true, IsToOldCommittee: true, } - content := &DGRound2Message{} + content := &DGRound2Message2{} msg := tss.NewMessageWrapper(meta, content) return tss.NewMessage(meta, content, msg) } -func (m *DGRound2Message) ValidateBasic() bool { +func (m *DGRound2Message2) ValidateBasic() bool { return true } diff --git a/eddsa/resharing/round_2_new_step_1.go b/eddsa/resharing/round_2_new_step_1.go index c323bfb0..d9117d09 100644 --- a/eddsa/resharing/round_2_new_step_1.go +++ b/eddsa/resharing/round_2_new_step_1.go @@ -38,7 +38,7 @@ func (round *round2) Start() *tss.Error { } func (round *round2) CanAccept(msg tss.ParsedMessage) bool { - if _, ok := msg.Content().(*DGRound2Message); ok { + if _, ok := msg.Content().(*DGRound2Message2); ok { return msg.IsBroadcast() } return false diff --git a/eddsa/signing/eddsa-signing.pb.go b/eddsa/signing/eddsa-signing.pb.go index 62a772a8..a36e75e3 100644 --- a/eddsa/signing/eddsa-signing.pb.go +++ b/eddsa/signing/eddsa-signing.pb.go @@ -1,62 +1,76 @@ +// Copyright © 2019 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. -// source: eddsa-signing.proto +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: protob/eddsa-signing.proto package signing import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // // Represents a BROADCAST message sent to all parties during Round 1 of the EDDSA TSS signing protocol. type SignRound1Message struct { - Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound1Message) Reset() { *m = SignRound1Message{} } -func (m *SignRound1Message) String() string { return proto.CompactTextString(m) } -func (*SignRound1Message) ProtoMessage() {} -func (*SignRound1Message) Descriptor() ([]byte, []int) { - return fileDescriptor_cf83f80fc7454980, []int{0} + Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` } -func (m *SignRound1Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound1Message.Unmarshal(m, b) -} -func (m *SignRound1Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound1Message.Marshal(b, m, deterministic) -} -func (m *SignRound1Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound1Message.Merge(m, src) +func (x *SignRound1Message) Reset() { + *x = SignRound1Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_signing_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound1Message) XXX_Size() int { - return xxx_messageInfo_SignRound1Message.Size(m) + +func (x *SignRound1Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound1Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound1Message.DiscardUnknown(m) + +func (*SignRound1Message) ProtoMessage() {} + +func (x *SignRound1Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_signing_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound1Message proto.InternalMessageInfo +// Deprecated: Use SignRound1Message.ProtoReflect.Descriptor instead. +func (*SignRound1Message) Descriptor() ([]byte, []int) { + return file_protob_eddsa_signing_proto_rawDescGZIP(), []int{0} +} -func (m *SignRound1Message) GetCommitment() []byte { - if m != nil { - return m.Commitment +func (x *SignRound1Message) GetCommitment() []byte { + if x != nil { + return x.Commitment } return nil } @@ -64,64 +78,72 @@ func (m *SignRound1Message) GetCommitment() []byte { // // Represents a BROADCAST message sent to all parties during Round 2 of the EDDSA TSS signing protocol. type SignRound2Message struct { - DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` - ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` - ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` - ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignRound2Message) Reset() { *m = SignRound2Message{} } -func (m *SignRound2Message) String() string { return proto.CompactTextString(m) } -func (*SignRound2Message) ProtoMessage() {} -func (*SignRound2Message) Descriptor() ([]byte, []int) { - return fileDescriptor_cf83f80fc7454980, []int{1} -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound2Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound2Message.Unmarshal(m, b) -} -func (m *SignRound2Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound2Message.Marshal(b, m, deterministic) + DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` + ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` + ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` + ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` } -func (m *SignRound2Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound2Message.Merge(m, src) + +func (x *SignRound2Message) Reset() { + *x = SignRound2Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_signing_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound2Message) XXX_Size() int { - return xxx_messageInfo_SignRound2Message.Size(m) + +func (x *SignRound2Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound2Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound2Message.DiscardUnknown(m) + +func (*SignRound2Message) ProtoMessage() {} + +func (x *SignRound2Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_signing_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound2Message proto.InternalMessageInfo +// Deprecated: Use SignRound2Message.ProtoReflect.Descriptor instead. +func (*SignRound2Message) Descriptor() ([]byte, []int) { + return file_protob_eddsa_signing_proto_rawDescGZIP(), []int{1} +} -func (m *SignRound2Message) GetDeCommitment() [][]byte { - if m != nil { - return m.DeCommitment +func (x *SignRound2Message) GetDeCommitment() [][]byte { + if x != nil { + return x.DeCommitment } return nil } -func (m *SignRound2Message) GetProofAlphaX() []byte { - if m != nil { - return m.ProofAlphaX +func (x *SignRound2Message) GetProofAlphaX() []byte { + if x != nil { + return x.ProofAlphaX } return nil } -func (m *SignRound2Message) GetProofAlphaY() []byte { - if m != nil { - return m.ProofAlphaY +func (x *SignRound2Message) GetProofAlphaY() []byte { + if x != nil { + return x.ProofAlphaY } return nil } -func (m *SignRound2Message) GetProofT() []byte { - if m != nil { - return m.ProofT +func (x *SignRound2Message) GetProofT() []byte { + if x != nil { + return x.ProofT } return nil } @@ -129,65 +151,161 @@ func (m *SignRound2Message) GetProofT() []byte { // // Represents a BROADCAST message sent to all parties during Round 3 of the EDDSA TSS signing protocol. type SignRound3Message struct { - S []byte `protobuf:"bytes,1,opt,name=s,proto3" json:"s,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + S []byte `protobuf:"bytes,1,opt,name=s,proto3" json:"s,omitempty"` } -func (m *SignRound3Message) Reset() { *m = SignRound3Message{} } -func (m *SignRound3Message) String() string { return proto.CompactTextString(m) } -func (*SignRound3Message) ProtoMessage() {} -func (*SignRound3Message) Descriptor() ([]byte, []int) { - return fileDescriptor_cf83f80fc7454980, []int{2} +func (x *SignRound3Message) Reset() { + *x = SignRound3Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_signing_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound3Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound3Message.Unmarshal(m, b) +func (x *SignRound3Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound3Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound3Message.Marshal(b, m, deterministic) + +func (*SignRound3Message) ProtoMessage() {} + +func (x *SignRound3Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_signing_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *SignRound3Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound3Message.Merge(m, src) + +// Deprecated: Use SignRound3Message.ProtoReflect.Descriptor instead. +func (*SignRound3Message) Descriptor() ([]byte, []int) { + return file_protob_eddsa_signing_proto_rawDescGZIP(), []int{2} } -func (m *SignRound3Message) XXX_Size() int { - return xxx_messageInfo_SignRound3Message.Size(m) + +func (x *SignRound3Message) GetS() []byte { + if x != nil { + return x.S + } + return nil } -func (m *SignRound3Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound3Message.DiscardUnknown(m) + +var File_protob_eddsa_signing_proto protoreflect.FileDescriptor + +var file_protob_eddsa_signing_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x65, 0x64, 0x64, 0x73, 0x61, 0x2d, 0x73, + 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x65, 0x64, + 0x64, 0x73, 0x61, 0x22, 0x33, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, + 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x11, 0x53, 0x69, 0x67, + 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, + 0x0a, 0x0d, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x5f, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x58, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x59, 0x12, 0x17, 0x0a, 0x07, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, + 0x6f, 0x6f, 0x66, 0x54, 0x22, 0x21, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x73, 0x42, 0x0f, 0x5a, 0x0d, 0x65, 0x64, 0x64, 0x73, 0x61, + 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } -var xxx_messageInfo_SignRound3Message proto.InternalMessageInfo +var ( + file_protob_eddsa_signing_proto_rawDescOnce sync.Once + file_protob_eddsa_signing_proto_rawDescData = file_protob_eddsa_signing_proto_rawDesc +) -func (m *SignRound3Message) GetS() []byte { - if m != nil { - return m.S - } - return nil +func file_protob_eddsa_signing_proto_rawDescGZIP() []byte { + file_protob_eddsa_signing_proto_rawDescOnce.Do(func() { + file_protob_eddsa_signing_proto_rawDescData = protoimpl.X.CompressGZIP(file_protob_eddsa_signing_proto_rawDescData) + }) + return file_protob_eddsa_signing_proto_rawDescData } -func init() { - proto.RegisterType((*SignRound1Message)(nil), "SignRound1Message") - proto.RegisterType((*SignRound2Message)(nil), "SignRound2Message") - proto.RegisterType((*SignRound3Message)(nil), "SignRound3Message") -} - -func init() { proto.RegisterFile("eddsa-signing.proto", fileDescriptor_cf83f80fc7454980) } - -var fileDescriptor_cf83f80fc7454980 = []byte{ - // 197 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4e, 0x4d, 0x49, 0x29, - 0x4e, 0xd4, 0x2d, 0xce, 0x4c, 0xcf, 0xcb, 0xcc, 0x4b, 0xd7, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x57, - 0x32, 0xe6, 0x12, 0x0c, 0xce, 0x4c, 0xcf, 0x0b, 0xca, 0x2f, 0xcd, 0x4b, 0x31, 0xf4, 0x4d, 0x2d, - 0x2e, 0x4e, 0x4c, 0x4f, 0x15, 0x92, 0xe3, 0xe2, 0x4a, 0xce, 0xcf, 0xcd, 0xcd, 0x2c, 0xc9, 0x4d, - 0xcd, 0x2b, 0x91, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x09, 0x42, 0x12, 0x51, 0x9a, 0xc9, 0x88, 0xa4, - 0xcb, 0x08, 0xa6, 0x4b, 0x99, 0x8b, 0x37, 0x25, 0x35, 0x1e, 0x45, 0x23, 0xb3, 0x06, 0x4f, 0x10, - 0x4f, 0x4a, 0xaa, 0x33, 0x5c, 0x4c, 0x48, 0x89, 0x8b, 0xb7, 0xa0, 0x28, 0x3f, 0x3f, 0x2d, 0x3e, - 0x31, 0xa7, 0x20, 0x23, 0x31, 0xbe, 0x42, 0x82, 0x09, 0x6c, 0x3a, 0x37, 0x58, 0xd0, 0x11, 0x24, - 0x16, 0x81, 0xae, 0xa6, 0x52, 0x82, 0x19, 0x5d, 0x4d, 0xa4, 0x90, 0x38, 0x17, 0x3b, 0x44, 0x4d, - 0x89, 0x04, 0x0b, 0x58, 0x96, 0x0d, 0xcc, 0x0d, 0x51, 0x52, 0x44, 0x72, 0x9a, 0x31, 0xcc, 0x69, - 0x3c, 0x5c, 0x8c, 0xc5, 0x50, 0x7f, 0x30, 0x16, 0x3b, 0xf1, 0x47, 0xf1, 0x82, 0x83, 0x42, 0x1f, - 0x1a, 0x14, 0x49, 0x6c, 0xe0, 0xb0, 0x30, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x0a, 0x36, 0x85, - 0xc1, 0x22, 0x01, 0x00, 0x00, +var file_protob_eddsa_signing_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_protob_eddsa_signing_proto_goTypes = []interface{}{ + (*SignRound1Message)(nil), // 0: eddsa.SignRound1Message + (*SignRound2Message)(nil), // 1: eddsa.SignRound2Message + (*SignRound3Message)(nil), // 2: eddsa.SignRound3Message +} +var file_protob_eddsa_signing_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_protob_eddsa_signing_proto_init() } +func file_protob_eddsa_signing_proto_init() { + if File_protob_eddsa_signing_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protob_eddsa_signing_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound1Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_signing_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound2Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_signing_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound3Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protob_eddsa_signing_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protob_eddsa_signing_proto_goTypes, + DependencyIndexes: file_protob_eddsa_signing_proto_depIdxs, + MessageInfos: file_protob_eddsa_signing_proto_msgTypes, + }.Build() + File_protob_eddsa_signing_proto = out.File + file_protob_eddsa_signing_proto_rawDesc = nil + file_protob_eddsa_signing_proto_goTypes = nil + file_protob_eddsa_signing_proto_depIdxs = nil } diff --git a/eddsa/signing/messages.go b/eddsa/signing/messages.go index 4cf6070b..7e93d8e1 100644 --- a/eddsa/signing/messages.go +++ b/eddsa/signing/messages.go @@ -9,8 +9,6 @@ package signing import ( "math/big" - "github.com/golang/protobuf/proto" - "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" cmt "github.com/binance-chain/tss-lib/crypto/commitments" @@ -30,12 +28,6 @@ var ( } ) -func init() { - proto.RegisterType((*SignRound1Message)(nil), tss.EDDSAProtoNamePrefix+"signing.SignRound1Message") - proto.RegisterType((*SignRound2Message)(nil), tss.EDDSAProtoNamePrefix+"signing.SignRound2Message") - proto.RegisterType((*SignRound3Message)(nil), tss.EDDSAProtoNamePrefix+"signing.SignRound3Message") -} - // ----- // func NewSignRound1Message( diff --git a/go.mod b/go.mod index b38587a1..f4bdf8e1 100644 --- a/go.mod +++ b/go.mod @@ -1,13 +1,12 @@ module github.com/binance-chain/tss-lib -go 1.12 +go 1.16 require ( github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8 github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0 - github.com/golang/protobuf v1.3.2 github.com/hashicorp/go-multierror v1.0.0 github.com/ipfs/go-log v0.0.1 github.com/mattn/go-colorable v0.1.2 // indirect @@ -17,6 +16,7 @@ require ( github.com/pkg/errors v0.8.1 github.com/stretchr/testify v1.3.0 golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7 // indirect + google.golang.org/protobuf v1.27.1 ) replace github.com/agl/ed25519 => github.com/binance-chain/edwards25519 v0.0.0-20200305024217-f36fc4b53d43 diff --git a/go.sum b/go.sum index c7cbf922..6dc70142 100644 --- a/go.sum +++ b/go.sum @@ -24,6 +24,9 @@ github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zV github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4= +github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= @@ -73,6 +76,10 @@ golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7 h1:LepdCS8Gf/MVejFIt8lsiexZA golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= +google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= diff --git a/protob/ecdsa-keygen.proto b/protob/ecdsa-keygen.proto index c00f2ef6..5f8449f0 100644 --- a/protob/ecdsa-keygen.proto +++ b/protob/ecdsa-keygen.proto @@ -6,6 +6,8 @@ syntax = "proto3"; +package ecdsa; + option go_package = "ecdsa/keygen"; /* diff --git a/protob/ecdsa-resharing.proto b/protob/ecdsa-resharing.proto index 51e3bff3..1c7f0424 100644 --- a/protob/ecdsa-resharing.proto +++ b/protob/ecdsa-resharing.proto @@ -6,6 +6,8 @@ syntax = "proto3"; +package ecdsa; + option go_package = "ecdsa/resharing"; /* diff --git a/protob/ecdsa-signing.proto b/protob/ecdsa-signing.proto index ef23f170..45ea9f3e 100644 --- a/protob/ecdsa-signing.proto +++ b/protob/ecdsa-signing.proto @@ -6,6 +6,8 @@ syntax = "proto3"; +package ecdsa; + option go_package = "ecdsa/signing"; /* diff --git a/protob/eddsa-keygen.proto b/protob/eddsa-keygen.proto index 52d9f530..2a49cdde 100644 --- a/protob/eddsa-keygen.proto +++ b/protob/eddsa-keygen.proto @@ -6,6 +6,8 @@ syntax = "proto3"; +package eddsa; + option go_package = "eddsa/keygen"; /* diff --git a/protob/eddsa-resharing.proto b/protob/eddsa-resharing.proto index 0ad299f5..38892e1e 100644 --- a/protob/eddsa-resharing.proto +++ b/protob/eddsa-resharing.proto @@ -6,6 +6,8 @@ syntax = "proto3"; +package eddsa; + option go_package = "eddsa/resharing"; /* diff --git a/protob/eddsa-signing.proto b/protob/eddsa-signing.proto index eb795891..80e6dd4a 100644 --- a/protob/eddsa-signing.proto +++ b/protob/eddsa-signing.proto @@ -6,6 +6,8 @@ syntax = "proto3"; +package eddsa; + option go_package = "eddsa/signing"; /* diff --git a/tss/message.go b/tss/message.go index 222e6ad3..acb4a6ec 100644 --- a/tss/message.go +++ b/tss/message.go @@ -9,8 +9,8 @@ package tss import ( "fmt" - "github.com/golang/protobuf/proto" - "github.com/golang/protobuf/ptypes" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/anypb" ) type ( @@ -81,7 +81,7 @@ var ( // NewMessageWrapper constructs a MessageWrapper from routing metadata and content func NewMessageWrapper(routing MessageRouting, content MessageContent) *MessageWrapper { // marshal the content to the ProtoBuf Any type - any, _ := ptypes.MarshalAny(content) + any, _ := anypb.New(content) // convert given PartyIDs to the wire format var to []*MessageWrapper_PartyID if routing.To != nil { @@ -111,7 +111,7 @@ func NewMessage(meta MessageRouting, content MessageContent, wire *MessageWrappe } func (mm *MessageImpl) Type() string { - return proto.MessageName(mm.content) + return string(proto.MessageName(mm.content)) } func (mm *MessageImpl) GetTo() []*PartyID { diff --git a/tss/message.pb.go b/tss/message.pb.go index 8bc51645..5216750c 100644 --- a/tss/message.pb.go +++ b/tss/message.pb.go @@ -1,35 +1,45 @@ +// Copyright © 2019 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 // source: protob/message.proto package tss import ( - fmt "fmt" - proto "github.com/golang/protobuf/proto" - any "github.com/golang/protobuf/ptypes/any" - math "math" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + anypb "google.golang.org/protobuf/types/known/anypb" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // // Wrapper for TSS messages, often read by the transport layer and not itself sent over the wire type MessageWrapper struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Metadata optionally un-marshalled and used by the transport to route this message. IsBroadcast bool `protobuf:"varint,1,opt,name=is_broadcast,json=isBroadcast,proto3" json:"is_broadcast,omitempty"` // Metadata optionally un-marshalled and used by the transport to route this message. - IsToOldCommittee bool `protobuf:"varint,2,opt,name=is_to_old_committee,json=isToOldCommittee,proto3" json:"is_to_old_committee,omitempty"` + IsToOldCommittee bool `protobuf:"varint,2,opt,name=is_to_old_committee,json=isToOldCommittee,proto3" json:"is_to_old_committee,omitempty"` // used only in certain resharing messages // Metadata optionally un-marshalled and used by the transport to route this message. - IsToOldAndNewCommittees bool `protobuf:"varint,5,opt,name=is_to_old_and_new_committees,json=isToOldAndNewCommittees,proto3" json:"is_to_old_and_new_committees,omitempty"` + IsToOldAndNewCommittees bool `protobuf:"varint,5,opt,name=is_to_old_and_new_committees,json=isToOldAndNewCommittees,proto3" json:"is_to_old_and_new_committees,omitempty"` // used only in certain resharing messages // Metadata optionally un-marshalled and used by the transport to route this message. From *MessageWrapper_PartyID `protobuf:"bytes,3,opt,name=from,proto3" json:"from,omitempty"` // Metadata optionally un-marshalled and used by the transport to route this message. @@ -37,75 +47,79 @@ type MessageWrapper struct { // This field is actually what is sent through the wire and consumed on the other end by UpdateFromBytes. // An Any contains an arbitrary serialized message as bytes, along with a URL that // acts as a globally unique identifier for and resolves to that message's type. - Message *any.Any `protobuf:"bytes,10,opt,name=message,proto3" json:"message,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Message *anypb.Any `protobuf:"bytes,10,opt,name=message,proto3" json:"message,omitempty"` } -func (m *MessageWrapper) Reset() { *m = MessageWrapper{} } -func (m *MessageWrapper) String() string { return proto.CompactTextString(m) } -func (*MessageWrapper) ProtoMessage() {} -func (*MessageWrapper) Descriptor() ([]byte, []int) { - return fileDescriptor_5be430ad0e7f3d12, []int{0} +func (x *MessageWrapper) Reset() { + *x = MessageWrapper{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_message_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *MessageWrapper) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MessageWrapper.Unmarshal(m, b) -} -func (m *MessageWrapper) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MessageWrapper.Marshal(b, m, deterministic) -} -func (m *MessageWrapper) XXX_Merge(src proto.Message) { - xxx_messageInfo_MessageWrapper.Merge(m, src) -} -func (m *MessageWrapper) XXX_Size() int { - return xxx_messageInfo_MessageWrapper.Size(m) +func (x *MessageWrapper) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *MessageWrapper) XXX_DiscardUnknown() { - xxx_messageInfo_MessageWrapper.DiscardUnknown(m) + +func (*MessageWrapper) ProtoMessage() {} + +func (x *MessageWrapper) ProtoReflect() protoreflect.Message { + mi := &file_protob_message_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_MessageWrapper proto.InternalMessageInfo +// Deprecated: Use MessageWrapper.ProtoReflect.Descriptor instead. +func (*MessageWrapper) Descriptor() ([]byte, []int) { + return file_protob_message_proto_rawDescGZIP(), []int{0} +} -func (m *MessageWrapper) GetIsBroadcast() bool { - if m != nil { - return m.IsBroadcast +func (x *MessageWrapper) GetIsBroadcast() bool { + if x != nil { + return x.IsBroadcast } return false } -func (m *MessageWrapper) GetIsToOldCommittee() bool { - if m != nil { - return m.IsToOldCommittee +func (x *MessageWrapper) GetIsToOldCommittee() bool { + if x != nil { + return x.IsToOldCommittee } return false } -func (m *MessageWrapper) GetIsToOldAndNewCommittees() bool { - if m != nil { - return m.IsToOldAndNewCommittees +func (x *MessageWrapper) GetIsToOldAndNewCommittees() bool { + if x != nil { + return x.IsToOldAndNewCommittees } return false } -func (m *MessageWrapper) GetFrom() *MessageWrapper_PartyID { - if m != nil { - return m.From +func (x *MessageWrapper) GetFrom() *MessageWrapper_PartyID { + if x != nil { + return x.From } return nil } -func (m *MessageWrapper) GetTo() []*MessageWrapper_PartyID { - if m != nil { - return m.To +func (x *MessageWrapper) GetTo() []*MessageWrapper_PartyID { + if x != nil { + return x.To } return nil } -func (m *MessageWrapper) GetMessage() *any.Any { - if m != nil { - return m.Message +func (x *MessageWrapper) GetMessage() *anypb.Any { + if x != nil { + return x.Message } return nil } @@ -114,86 +128,177 @@ func (m *MessageWrapper) GetMessage() *any.Any { // Note: The `id` and `moniker` are provided for convenience to allow you to track participants easier. // The `id` is intended to be a unique string representation of `key` and `moniker` can be anything (even left blank). type MessageWrapper_PartyID struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Moniker string `protobuf:"bytes,2,opt,name=moniker,proto3" json:"moniker,omitempty"` - Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *MessageWrapper_PartyID) Reset() { *m = MessageWrapper_PartyID{} } -func (m *MessageWrapper_PartyID) String() string { return proto.CompactTextString(m) } -func (*MessageWrapper_PartyID) ProtoMessage() {} -func (*MessageWrapper_PartyID) Descriptor() ([]byte, []int) { - return fileDescriptor_5be430ad0e7f3d12, []int{0, 0} + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Moniker string `protobuf:"bytes,2,opt,name=moniker,proto3" json:"moniker,omitempty"` + Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` } -func (m *MessageWrapper_PartyID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MessageWrapper_PartyID.Unmarshal(m, b) -} -func (m *MessageWrapper_PartyID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MessageWrapper_PartyID.Marshal(b, m, deterministic) -} -func (m *MessageWrapper_PartyID) XXX_Merge(src proto.Message) { - xxx_messageInfo_MessageWrapper_PartyID.Merge(m, src) +func (x *MessageWrapper_PartyID) Reset() { + *x = MessageWrapper_PartyID{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_message_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *MessageWrapper_PartyID) XXX_Size() int { - return xxx_messageInfo_MessageWrapper_PartyID.Size(m) + +func (x *MessageWrapper_PartyID) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *MessageWrapper_PartyID) XXX_DiscardUnknown() { - xxx_messageInfo_MessageWrapper_PartyID.DiscardUnknown(m) + +func (*MessageWrapper_PartyID) ProtoMessage() {} + +func (x *MessageWrapper_PartyID) ProtoReflect() protoreflect.Message { + mi := &file_protob_message_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_MessageWrapper_PartyID proto.InternalMessageInfo +// Deprecated: Use MessageWrapper_PartyID.ProtoReflect.Descriptor instead. +func (*MessageWrapper_PartyID) Descriptor() ([]byte, []int) { + return file_protob_message_proto_rawDescGZIP(), []int{0, 0} +} -func (m *MessageWrapper_PartyID) GetId() string { - if m != nil { - return m.Id +func (x *MessageWrapper_PartyID) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *MessageWrapper_PartyID) GetMoniker() string { - if m != nil { - return m.Moniker +func (x *MessageWrapper_PartyID) GetMoniker() string { + if x != nil { + return x.Moniker } return "" } -func (m *MessageWrapper_PartyID) GetKey() []byte { - if m != nil { - return m.Key +func (x *MessageWrapper_PartyID) GetKey() []byte { + if x != nil { + return x.Key } return nil } -func init() { - proto.RegisterType((*MessageWrapper)(nil), "MessageWrapper") - proto.RegisterType((*MessageWrapper_PartyID)(nil), "MessageWrapper.PartyID") -} - -func init() { proto.RegisterFile("protob/message.proto", fileDescriptor_5be430ad0e7f3d12) } - -var fileDescriptor_5be430ad0e7f3d12 = []byte{ - // 297 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x7c, 0x90, 0x4f, 0x4b, 0x33, 0x31, - 0x10, 0x87, 0x69, 0xda, 0xbe, 0xfb, 0x76, 0x5a, 0x4a, 0x89, 0x85, 0xc6, 0xe2, 0xa1, 0x7a, 0xb1, - 0x20, 0x66, 0x41, 0xcf, 0x1e, 0x5a, 0xf5, 0xe0, 0xc1, 0x3f, 0x04, 0x41, 0xf0, 0xb2, 0xa4, 0x4d, - 0x5a, 0x42, 0xbb, 0x99, 0x92, 0x44, 0xca, 0x7e, 0x69, 0x3f, 0x83, 0x98, 0xdd, 0xb5, 0x78, 0xf1, - 0x96, 0x99, 0x79, 0x7e, 0x99, 0xe1, 0x81, 0xe1, 0xce, 0x61, 0xc0, 0x45, 0x9a, 0x6b, 0xef, 0xe5, - 0x5a, 0xf3, 0x58, 0x8e, 0x8f, 0xd7, 0x88, 0xeb, 0xad, 0x4e, 0xcb, 0xe1, 0xc7, 0x2a, 0x95, 0xb6, - 0x28, 0x47, 0x67, 0x9f, 0x04, 0xfa, 0x8f, 0x25, 0xfc, 0xe6, 0xe4, 0x6e, 0xa7, 0x1d, 0x3d, 0x85, - 0x9e, 0xf1, 0xd9, 0xc2, 0xa1, 0x54, 0x4b, 0xe9, 0x03, 0x6b, 0x4c, 0x1a, 0xd3, 0xff, 0xa2, 0x6b, - 0xfc, 0xbc, 0x6e, 0xd1, 0x4b, 0x38, 0x32, 0x3e, 0x0b, 0x98, 0xe1, 0x56, 0x65, 0x4b, 0xcc, 0x73, - 0x13, 0x82, 0xd6, 0x8c, 0x44, 0x72, 0x60, 0xfc, 0x2b, 0x3e, 0x6f, 0xd5, 0x6d, 0xdd, 0xa7, 0x37, - 0x70, 0x72, 0xc0, 0xa5, 0x55, 0x99, 0xd5, 0xfb, 0x43, 0xcc, 0xb3, 0x76, 0xcc, 0x8d, 0xaa, 0xdc, - 0xcc, 0xaa, 0x27, 0xbd, 0xff, 0x49, 0x7b, 0x7a, 0x01, 0xad, 0x95, 0xc3, 0x9c, 0x35, 0x27, 0x8d, - 0x69, 0xf7, 0x6a, 0xc4, 0x7f, 0xdf, 0xcb, 0x5f, 0xa4, 0x0b, 0xc5, 0xc3, 0x9d, 0x88, 0x10, 0x3d, - 0x07, 0x12, 0x90, 0xb5, 0x26, 0xcd, 0xbf, 0x50, 0x12, 0x90, 0x72, 0x48, 0x2a, 0x4b, 0x0c, 0xe2, - 0xc7, 0x43, 0x5e, 0x6a, 0xe2, 0xb5, 0x26, 0x3e, 0xb3, 0x85, 0xa8, 0xa1, 0xf1, 0x3d, 0x24, 0x55, - 0x9c, 0xf6, 0x81, 0x18, 0x15, 0xbd, 0x74, 0x04, 0x31, 0x8a, 0x32, 0x48, 0x72, 0xb4, 0x66, 0xa3, - 0x5d, 0x54, 0xd0, 0x11, 0x75, 0x49, 0x07, 0xd0, 0xdc, 0xe8, 0x22, 0x5e, 0xde, 0x13, 0xdf, 0xcf, - 0x79, 0xf2, 0xde, 0xe6, 0x69, 0xf0, 0x7e, 0xf1, 0x2f, 0xae, 0xb9, 0xfe, 0x0a, 0x00, 0x00, 0xff, - 0xff, 0xac, 0xdd, 0x4e, 0x90, 0xb3, 0x01, 0x00, 0x00, +var File_protob_message_proto protoreflect.FileDescriptor + +var file_protob_message_proto_rawDesc = []byte{ + 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0xee, 0x02, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x57, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x42, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x13, 0x69, 0x73, 0x5f, 0x74, 0x6f, + 0x5f, 0x6f, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x54, 0x6f, 0x4f, 0x6c, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x12, 0x3d, 0x0a, 0x1c, 0x69, 0x73, 0x5f, 0x74, 0x6f, 0x5f, + 0x6f, 0x6c, 0x64, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x69, 0x73, + 0x54, 0x6f, 0x4f, 0x6c, 0x64, 0x41, 0x6e, 0x64, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x65, 0x73, 0x12, 0x2b, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x57, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x79, 0x49, 0x44, 0x52, 0x04, 0x66, 0x72, + 0x6f, 0x6d, 0x12, 0x27, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, + 0x50, 0x61, 0x72, 0x74, 0x79, 0x49, 0x44, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, + 0x6e, 0x79, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x45, 0x0a, 0x07, 0x50, + 0x61, 0x72, 0x74, 0x79, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x2f, 0x74, 0x73, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_protob_message_proto_rawDescOnce sync.Once + file_protob_message_proto_rawDescData = file_protob_message_proto_rawDesc +) + +func file_protob_message_proto_rawDescGZIP() []byte { + file_protob_message_proto_rawDescOnce.Do(func() { + file_protob_message_proto_rawDescData = protoimpl.X.CompressGZIP(file_protob_message_proto_rawDescData) + }) + return file_protob_message_proto_rawDescData +} + +var file_protob_message_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_protob_message_proto_goTypes = []interface{}{ + (*MessageWrapper)(nil), // 0: MessageWrapper + (*MessageWrapper_PartyID)(nil), // 1: MessageWrapper.PartyID + (*anypb.Any)(nil), // 2: google.protobuf.Any +} +var file_protob_message_proto_depIdxs = []int32{ + 1, // 0: MessageWrapper.from:type_name -> MessageWrapper.PartyID + 1, // 1: MessageWrapper.to:type_name -> MessageWrapper.PartyID + 2, // 2: MessageWrapper.message:type_name -> google.protobuf.Any + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_protob_message_proto_init() } +func file_protob_message_proto_init() { + if File_protob_message_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protob_message_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageWrapper); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_message_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageWrapper_PartyID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protob_message_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protob_message_proto_goTypes, + DependencyIndexes: file_protob_message_proto_depIdxs, + MessageInfos: file_protob_message_proto_msgTypes, + }.Build() + File_protob_message_proto = out.File + file_protob_message_proto_rawDesc = nil + file_protob_message_proto_goTypes = nil + file_protob_message_proto_depIdxs = nil } diff --git a/tss/wire.go b/tss/wire.go index bb9234ba..bc24df50 100644 --- a/tss/wire.go +++ b/tss/wire.go @@ -8,21 +8,14 @@ package tss import ( "errors" - - "github.com/golang/protobuf/proto" - "github.com/golang/protobuf/ptypes" - "github.com/golang/protobuf/ptypes/any" -) - -const ( - ECDSAProtoNamePrefix = "binance.tss-lib.ecdsa." - EDDSAProtoNamePrefix = "binance.tss-lib.eddsa." + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/anypb" ) // Used externally to update a LocalParty with a valid ParsedMessage func ParseWireMessage(wireBytes []byte, from *PartyID, isBroadcast bool) (ParsedMessage, error) { wire := new(MessageWrapper) - wire.Message = new(any.Any) + wire.Message = new(anypb.Any) wire.From = from.MessageWrapper_PartyID wire.IsBroadcast = isBroadcast if err := proto.Unmarshal(wireBytes, wire.Message); err != nil { @@ -32,15 +25,15 @@ func ParseWireMessage(wireBytes []byte, from *PartyID, isBroadcast bool) (Parsed } func parseWrappedMessage(wire *MessageWrapper, from *PartyID) (ParsedMessage, error) { - var any ptypes.DynamicAny + m, err := wire.Message.UnmarshalNew() + if err != nil { + return nil, err + } meta := MessageRouting{ From: from, IsBroadcast: wire.IsBroadcast, } - if err := ptypes.UnmarshalAny(wire.Message, &any); err != nil { - return nil, err - } - if content, ok := any.Message.(MessageContent); ok { + if content, ok := m.(MessageContent); ok { return NewMessage(meta, content, wire), nil } return nil, errors.New("ParseWireMessage: the message contained unknown content") From 787c506ac62cb8941e782f4593bcea60d52f3bd3 Mon Sep 17 00:00:00 2001 From: Plamen Hristov Date: Thu, 9 Sep 2021 11:14:52 +0300 Subject: [PATCH 17/50] Merged from master and regenerated pb.go files --- ecdsa/keygen/ecdsa-keygen.pb.go | 61 +- ecdsa/resharing/ecdsa-resharing.pb.go | 650 +++++++++------ ecdsa/signing/ecdsa-signing.pb.go | 1045 ++++++++++++++++--------- eddsa/keygen/eddsa-keygen.pb.go | 374 +++++---- eddsa/resharing/eddsa-resharing.pb.go | 491 ++++++++---- eddsa/signing/eddsa-signing.pb.go | 372 ++++++--- tss/message.pb.go | 344 +++++--- 7 files changed, 2137 insertions(+), 1200 deletions(-) diff --git a/ecdsa/keygen/ecdsa-keygen.pb.go b/ecdsa/keygen/ecdsa-keygen.pb.go index 89e8487a..55dd23d9 100644 --- a/ecdsa/keygen/ecdsa-keygen.pb.go +++ b/ecdsa/keygen/ecdsa-keygen.pb.go @@ -274,32 +274,33 @@ var File_protob_ecdsa_keygen_proto protoreflect.FileDescriptor var file_protob_ecdsa_keygen_proto_rawDesc = []byte{ 0x0a, 0x19, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x65, 0x63, 0x64, 0x73, 0x61, 0x2d, 0x6b, - 0x65, 0x79, 0x67, 0x65, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x65, 0x63, 0x64, - 0x73, 0x61, 0x22, 0xc7, 0x01, 0x0a, 0x0f, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x31, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, - 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, - 0x65, 0x72, 0x5f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x61, 0x69, 0x6c, - 0x6c, 0x69, 0x65, 0x72, 0x4e, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x5f, 0x74, 0x69, 0x6c, 0x64, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6e, 0x54, 0x69, 0x6c, 0x64, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x68, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x68, 0x31, 0x12, 0x0e, - 0x0a, 0x02, 0x68, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x68, 0x32, 0x12, 0x1d, - 0x0a, 0x0a, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x31, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x0c, 0x52, 0x09, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x31, 0x12, 0x1d, 0x0a, - 0x0a, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x32, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0c, 0x52, 0x09, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x32, 0x22, 0x28, 0x0a, 0x10, - 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, - 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x22, 0x37, 0x0a, 0x10, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, - 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, - 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x38, 0x0a, 0x0f, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x70, - 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x61, 0x69, 0x6c, - 0x6c, 0x69, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x0e, 0x5a, 0x0c, 0x65, 0x63, 0x64, - 0x73, 0x61, 0x2f, 0x6b, 0x65, 0x79, 0x67, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x65, 0x79, 0x67, 0x65, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x62, 0x69, 0x6e, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x74, 0x73, 0x73, 0x6c, 0x69, 0x62, 0x2e, 0x65, 0x63, 0x64, 0x73, + 0x61, 0x2e, 0x6b, 0x65, 0x79, 0x67, 0x65, 0x6e, 0x22, 0xc7, 0x01, 0x0a, 0x0f, 0x4b, 0x47, 0x52, + 0x6f, 0x75, 0x6e, 0x64, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x09, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x4e, 0x12, 0x17, 0x0a, 0x07, 0x6e, + 0x5f, 0x74, 0x69, 0x6c, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6e, 0x54, + 0x69, 0x6c, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x02, 0x68, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x02, 0x68, 0x32, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x5f, 0x31, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, + 0x6f, 0x66, 0x31, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, + 0x32, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x32, 0x22, 0x28, 0x0a, 0x10, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x22, 0x37, 0x0a, 0x10, + 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, + 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x38, 0x0a, 0x0f, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x69, 0x6c, + 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, + 0x52, 0x0d, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, + 0x0e, 0x5a, 0x0c, 0x65, 0x63, 0x64, 0x73, 0x61, 0x2f, 0x6b, 0x65, 0x79, 0x67, 0x65, 0x6e, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -316,10 +317,10 @@ func file_protob_ecdsa_keygen_proto_rawDescGZIP() []byte { var file_protob_ecdsa_keygen_proto_msgTypes = make([]protoimpl.MessageInfo, 4) var file_protob_ecdsa_keygen_proto_goTypes = []interface{}{ - (*KGRound1Message)(nil), // 0: ecdsa.KGRound1Message - (*KGRound2Message1)(nil), // 1: ecdsa.KGRound2Message1 - (*KGRound2Message2)(nil), // 2: ecdsa.KGRound2Message2 - (*KGRound3Message)(nil), // 3: ecdsa.KGRound3Message + (*KGRound1Message)(nil), // 0: binance.tsslib.ecdsa.keygen.KGRound1Message + (*KGRound2Message1)(nil), // 1: binance.tsslib.ecdsa.keygen.KGRound2Message1 + (*KGRound2Message2)(nil), // 2: binance.tsslib.ecdsa.keygen.KGRound2Message2 + (*KGRound3Message)(nil), // 3: binance.tsslib.ecdsa.keygen.KGRound3Message } var file_protob_ecdsa_keygen_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type diff --git a/ecdsa/resharing/ecdsa-resharing.pb.go b/ecdsa/resharing/ecdsa-resharing.pb.go index 594f96cb..fed8d83b 100644 --- a/ecdsa/resharing/ecdsa-resharing.pb.go +++ b/ecdsa/resharing/ecdsa-resharing.pb.go @@ -1,85 +1,92 @@ -// Copyright © 2019-2020 Binance +// Copyright © 2019 Binance // // This file is part of Binance. The full Binance copyright notice, including // terms governing use, modification, and redistribution, is contained in the // file LICENSE at the root of the source code distribution tree. // Code generated by protoc-gen-go. DO NOT EDIT. -// source: ecdsa-resharing.proto +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: protob/ecdsa-resharing.proto package resharing import ( - fmt "fmt" - math "math" - - proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // // The Round 1 data is broadcast to peers of the New Committee in this message. type DGRound1Message struct { - EcdsaPubX []byte `protobuf:"bytes,1,opt,name=ecdsa_pub_x,json=ecdsaPubX,proto3" json:"ecdsa_pub_x,omitempty"` - EcdsaPubY []byte `protobuf:"bytes,2,opt,name=ecdsa_pub_y,json=ecdsaPubY,proto3" json:"ecdsa_pub_y,omitempty"` - VCommitment []byte `protobuf:"bytes,3,opt,name=v_commitment,json=vCommitment,proto3" json:"v_commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DGRound1Message) Reset() { *m = DGRound1Message{} } -func (m *DGRound1Message) String() string { return proto.CompactTextString(m) } -func (*DGRound1Message) ProtoMessage() {} -func (*DGRound1Message) Descriptor() ([]byte, []int) { - return fileDescriptor_cb0d21b734b9b1ac, []int{0} + EcdsaPubX []byte `protobuf:"bytes,1,opt,name=ecdsa_pub_x,json=ecdsaPubX,proto3" json:"ecdsa_pub_x,omitempty"` + EcdsaPubY []byte `protobuf:"bytes,2,opt,name=ecdsa_pub_y,json=ecdsaPubY,proto3" json:"ecdsa_pub_y,omitempty"` + VCommitment []byte `protobuf:"bytes,3,opt,name=v_commitment,json=vCommitment,proto3" json:"v_commitment,omitempty"` } -func (m *DGRound1Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound1Message.Unmarshal(m, b) -} -func (m *DGRound1Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound1Message.Marshal(b, m, deterministic) -} -func (m *DGRound1Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound1Message.Merge(m, src) +func (x *DGRound1Message) Reset() { + *x = DGRound1Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound1Message) XXX_Size() int { - return xxx_messageInfo_DGRound1Message.Size(m) + +func (x *DGRound1Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound1Message) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound1Message.DiscardUnknown(m) + +func (*DGRound1Message) ProtoMessage() {} + +func (x *DGRound1Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound1Message proto.InternalMessageInfo +// Deprecated: Use DGRound1Message.ProtoReflect.Descriptor instead. +func (*DGRound1Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{0} +} -func (m *DGRound1Message) GetEcdsaPubX() []byte { - if m != nil { - return m.EcdsaPubX +func (x *DGRound1Message) GetEcdsaPubX() []byte { + if x != nil { + return x.EcdsaPubX } return nil } -func (m *DGRound1Message) GetEcdsaPubY() []byte { - if m != nil { - return m.EcdsaPubY +func (x *DGRound1Message) GetEcdsaPubY() []byte { + if x != nil { + return x.EcdsaPubY } return nil } -func (m *DGRound1Message) GetVCommitment() []byte { - if m != nil { - return m.VCommitment +func (x *DGRound1Message) GetVCommitment() []byte { + if x != nil { + return x.VCommitment } return nil } @@ -87,88 +94,96 @@ func (m *DGRound1Message) GetVCommitment() []byte { // // The Round 2 data is broadcast to other peers of the New Committee in this message. type DGRound2Message1 struct { - PaillierN []byte `protobuf:"bytes,1,opt,name=paillier_n,json=paillierN,proto3" json:"paillier_n,omitempty"` - PaillierProof [][]byte `protobuf:"bytes,2,rep,name=paillier_proof,json=paillierProof,proto3" json:"paillier_proof,omitempty"` - NTilde []byte `protobuf:"bytes,3,opt,name=n_tilde,json=nTilde,proto3" json:"n_tilde,omitempty"` - H1 []byte `protobuf:"bytes,4,opt,name=h1,proto3" json:"h1,omitempty"` - H2 []byte `protobuf:"bytes,5,opt,name=h2,proto3" json:"h2,omitempty"` - Dlnproof_1 [][]byte `protobuf:"bytes,6,rep,name=dlnproof_1,json=dlnproof1,proto3" json:"dlnproof_1,omitempty"` - Dlnproof_2 [][]byte `protobuf:"bytes,7,rep,name=dlnproof_2,json=dlnproof2,proto3" json:"dlnproof_2,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DGRound2Message1) Reset() { *m = DGRound2Message1{} } -func (m *DGRound2Message1) String() string { return proto.CompactTextString(m) } -func (*DGRound2Message1) ProtoMessage() {} -func (*DGRound2Message1) Descriptor() ([]byte, []int) { - return fileDescriptor_cb0d21b734b9b1ac, []int{1} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PaillierN []byte `protobuf:"bytes,1,opt,name=paillier_n,json=paillierN,proto3" json:"paillier_n,omitempty"` + PaillierProof [][]byte `protobuf:"bytes,2,rep,name=paillier_proof,json=paillierProof,proto3" json:"paillier_proof,omitempty"` + NTilde []byte `protobuf:"bytes,3,opt,name=n_tilde,json=nTilde,proto3" json:"n_tilde,omitempty"` + H1 []byte `protobuf:"bytes,4,opt,name=h1,proto3" json:"h1,omitempty"` + H2 []byte `protobuf:"bytes,5,opt,name=h2,proto3" json:"h2,omitempty"` + Dlnproof_1 [][]byte `protobuf:"bytes,6,rep,name=dlnproof_1,json=dlnproof1,proto3" json:"dlnproof_1,omitempty"` + Dlnproof_2 [][]byte `protobuf:"bytes,7,rep,name=dlnproof_2,json=dlnproof2,proto3" json:"dlnproof_2,omitempty"` +} + +func (x *DGRound2Message1) Reset() { + *x = DGRound2Message1{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound2Message1) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound2Message1.Unmarshal(m, b) -} -func (m *DGRound2Message1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound2Message1.Marshal(b, m, deterministic) -} -func (m *DGRound2Message1) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound2Message1.Merge(m, src) +func (x *DGRound2Message1) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound2Message1) XXX_Size() int { - return xxx_messageInfo_DGRound2Message1.Size(m) -} -func (m *DGRound2Message1) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound2Message1.DiscardUnknown(m) + +func (*DGRound2Message1) ProtoMessage() {} + +func (x *DGRound2Message1) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound2Message1 proto.InternalMessageInfo +// Deprecated: Use DGRound2Message1.ProtoReflect.Descriptor instead. +func (*DGRound2Message1) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{1} +} -func (m *DGRound2Message1) GetPaillierN() []byte { - if m != nil { - return m.PaillierN +func (x *DGRound2Message1) GetPaillierN() []byte { + if x != nil { + return x.PaillierN } return nil } -func (m *DGRound2Message1) GetPaillierProof() [][]byte { - if m != nil { - return m.PaillierProof +func (x *DGRound2Message1) GetPaillierProof() [][]byte { + if x != nil { + return x.PaillierProof } return nil } -func (m *DGRound2Message1) GetNTilde() []byte { - if m != nil { - return m.NTilde +func (x *DGRound2Message1) GetNTilde() []byte { + if x != nil { + return x.NTilde } return nil } -func (m *DGRound2Message1) GetH1() []byte { - if m != nil { - return m.H1 +func (x *DGRound2Message1) GetH1() []byte { + if x != nil { + return x.H1 } return nil } -func (m *DGRound2Message1) GetH2() []byte { - if m != nil { - return m.H2 +func (x *DGRound2Message1) GetH2() []byte { + if x != nil { + return x.H2 } return nil } -func (m *DGRound2Message1) GetDlnproof_1() [][]byte { - if m != nil { - return m.Dlnproof_1 +func (x *DGRound2Message1) GetDlnproof_1() [][]byte { + if x != nil { + return x.Dlnproof_1 } return nil } -func (m *DGRound2Message1) GetDlnproof_2() [][]byte { - if m != nil { - return m.Dlnproof_2 +func (x *DGRound2Message1) GetDlnproof_2() [][]byte { + if x != nil { + return x.Dlnproof_2 } return nil } @@ -176,73 +191,88 @@ func (m *DGRound2Message1) GetDlnproof_2() [][]byte { // // The Round 2 "ACK" is broadcast to peers of the Old Committee in this message. type DGRound2Message2 struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (m *DGRound2Message2) Reset() { *m = DGRound2Message2{} } -func (m *DGRound2Message2) String() string { return proto.CompactTextString(m) } -func (*DGRound2Message2) ProtoMessage() {} -func (*DGRound2Message2) Descriptor() ([]byte, []int) { - return fileDescriptor_cb0d21b734b9b1ac, []int{2} +func (x *DGRound2Message2) Reset() { + *x = DGRound2Message2{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound2Message2) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound2Message2.Unmarshal(m, b) -} -func (m *DGRound2Message2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound2Message2.Marshal(b, m, deterministic) +func (x *DGRound2Message2) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound2Message2) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound2Message2.Merge(m, src) -} -func (m *DGRound2Message2) XXX_Size() int { - return xxx_messageInfo_DGRound2Message2.Size(m) -} -func (m *DGRound2Message2) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound2Message2.DiscardUnknown(m) + +func (*DGRound2Message2) ProtoMessage() {} + +func (x *DGRound2Message2) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound2Message2 proto.InternalMessageInfo +// Deprecated: Use DGRound2Message2.ProtoReflect.Descriptor instead. +func (*DGRound2Message2) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{2} +} // // The Round 3 data is sent to peers of the New Committee in this message. type DGRound3Message1 struct { - Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DGRound3Message1) Reset() { *m = DGRound3Message1{} } -func (m *DGRound3Message1) String() string { return proto.CompactTextString(m) } -func (*DGRound3Message1) ProtoMessage() {} -func (*DGRound3Message1) Descriptor() ([]byte, []int) { - return fileDescriptor_cb0d21b734b9b1ac, []int{3} + Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` } -func (m *DGRound3Message1) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound3Message1.Unmarshal(m, b) -} -func (m *DGRound3Message1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound3Message1.Marshal(b, m, deterministic) -} -func (m *DGRound3Message1) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound3Message1.Merge(m, src) +func (x *DGRound3Message1) Reset() { + *x = DGRound3Message1{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound3Message1) XXX_Size() int { - return xxx_messageInfo_DGRound3Message1.Size(m) + +func (x *DGRound3Message1) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound3Message1) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound3Message1.DiscardUnknown(m) + +func (*DGRound3Message1) ProtoMessage() {} + +func (x *DGRound3Message1) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound3Message1 proto.InternalMessageInfo +// Deprecated: Use DGRound3Message1.ProtoReflect.Descriptor instead. +func (*DGRound3Message1) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{3} +} -func (m *DGRound3Message1) GetShare() []byte { - if m != nil { - return m.Share +func (x *DGRound3Message1) GetShare() []byte { + if x != nil { + return x.Share } return nil } @@ -250,40 +280,48 @@ func (m *DGRound3Message1) GetShare() []byte { // // The Round 3 data is broadcast to peers of the New Committee in this message. type DGRound3Message2 struct { - VDecommitment [][]byte `protobuf:"bytes,1,rep,name=v_decommitment,json=vDecommitment,proto3" json:"v_decommitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DGRound3Message2) Reset() { *m = DGRound3Message2{} } -func (m *DGRound3Message2) String() string { return proto.CompactTextString(m) } -func (*DGRound3Message2) ProtoMessage() {} -func (*DGRound3Message2) Descriptor() ([]byte, []int) { - return fileDescriptor_cb0d21b734b9b1ac, []int{4} + VDecommitment [][]byte `protobuf:"bytes,1,rep,name=v_decommitment,json=vDecommitment,proto3" json:"v_decommitment,omitempty"` } -func (m *DGRound3Message2) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound3Message2.Unmarshal(m, b) -} -func (m *DGRound3Message2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound3Message2.Marshal(b, m, deterministic) -} -func (m *DGRound3Message2) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound3Message2.Merge(m, src) +func (x *DGRound3Message2) Reset() { + *x = DGRound3Message2{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound3Message2) XXX_Size() int { - return xxx_messageInfo_DGRound3Message2.Size(m) + +func (x *DGRound3Message2) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound3Message2) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound3Message2.DiscardUnknown(m) + +func (*DGRound3Message2) ProtoMessage() {} + +func (x *DGRound3Message2) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound3Message2 proto.InternalMessageInfo +// Deprecated: Use DGRound3Message2.ProtoReflect.Descriptor instead. +func (*DGRound3Message2) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{4} +} -func (m *DGRound3Message2) GetVDecommitment() [][]byte { - if m != nil { - return m.VDecommitment +func (x *DGRound3Message2) GetVDecommitment() [][]byte { + if x != nil { + return x.VDecommitment } return nil } @@ -291,67 +329,207 @@ func (m *DGRound3Message2) GetVDecommitment() [][]byte { // // The Round 4 "ACK" is broadcast to peers of the Old and New Committees from the New Committee in this message. type DGRound4Message struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DGRound4Message) Reset() { + *x = DGRound4Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DGRound4Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound4Message) Reset() { *m = DGRound4Message{} } -func (m *DGRound4Message) String() string { return proto.CompactTextString(m) } -func (*DGRound4Message) ProtoMessage() {} +func (*DGRound4Message) ProtoMessage() {} + +func (x *DGRound4Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DGRound4Message.ProtoReflect.Descriptor instead. func (*DGRound4Message) Descriptor() ([]byte, []int) { - return fileDescriptor_cb0d21b734b9b1ac, []int{5} -} - -func (m *DGRound4Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound4Message.Unmarshal(m, b) -} -func (m *DGRound4Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound4Message.Marshal(b, m, deterministic) -} -func (m *DGRound4Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound4Message.Merge(m, src) -} -func (m *DGRound4Message) XXX_Size() int { - return xxx_messageInfo_DGRound4Message.Size(m) -} -func (m *DGRound4Message) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound4Message.DiscardUnknown(m) -} - -var xxx_messageInfo_DGRound4Message proto.InternalMessageInfo - -func init() { - proto.RegisterType((*DGRound1Message)(nil), "binance.tsslib.ecdsa.resharing.DGRound1Message") - proto.RegisterType((*DGRound2Message1)(nil), "binance.tsslib.ecdsa.resharing.DGRound2Message1") - proto.RegisterType((*DGRound2Message2)(nil), "binance.tsslib.ecdsa.resharing.DGRound2Message2") - proto.RegisterType((*DGRound3Message1)(nil), "binance.tsslib.ecdsa.resharing.DGRound3Message1") - proto.RegisterType((*DGRound3Message2)(nil), "binance.tsslib.ecdsa.resharing.DGRound3Message2") - proto.RegisterType((*DGRound4Message)(nil), "binance.tsslib.ecdsa.resharing.DGRound4Message") -} - -func init() { proto.RegisterFile("ecdsa-resharing.proto", fileDescriptor_cb0d21b734b9b1ac) } - -var fileDescriptor_cb0d21b734b9b1ac = []byte{ - // 320 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x64, 0x92, 0x41, 0x4f, 0xfa, 0x30, - 0x18, 0xc6, 0xb3, 0xf1, 0x07, 0x42, 0xe1, 0x0f, 0xd2, 0x68, 0xec, 0x45, 0x82, 0x4d, 0x4c, 0xb8, - 0x38, 0xd3, 0xe2, 0xc5, 0xab, 0x92, 0x78, 0xd2, 0x10, 0xe2, 0x41, 0xbd, 0x34, 0x1b, 0xab, 0xd0, - 0x64, 0xb4, 0xcb, 0x5a, 0x16, 0xfd, 0x94, 0x7e, 0x25, 0xb3, 0xd2, 0x35, 0x2c, 0x1c, 0xdf, 0xdf, - 0xf3, 0xac, 0x4f, 0x9e, 0xf7, 0x1d, 0xb8, 0xe0, 0xeb, 0x54, 0xc7, 0xb7, 0x05, 0xd7, 0xdb, 0xb8, - 0x10, 0x72, 0x13, 0xe5, 0x85, 0x32, 0x0a, 0x4e, 0x12, 0x21, 0x63, 0xb9, 0xe6, 0x91, 0xd1, 0x3a, - 0x13, 0x49, 0x64, 0x5d, 0x91, 0x77, 0x61, 0x03, 0x46, 0x8b, 0xe7, 0x95, 0xda, 0xcb, 0x94, 0xbc, - 0x70, 0xad, 0xe3, 0x0d, 0x87, 0x13, 0xd0, 0xb7, 0x2e, 0x96, 0xef, 0x13, 0xf6, 0x8d, 0x82, 0x69, - 0x30, 0x1b, 0xac, 0x7a, 0x16, 0x2d, 0xf7, 0xc9, 0x7b, 0x53, 0xff, 0x41, 0x61, 0x53, 0xff, 0x80, - 0xd7, 0x60, 0x50, 0xb2, 0xb5, 0xda, 0xed, 0x84, 0xd9, 0x71, 0x69, 0x50, 0xcb, 0x1a, 0xfa, 0xe5, - 0x93, 0x47, 0xf8, 0x37, 0x00, 0x67, 0x2e, 0x96, 0xba, 0x58, 0x02, 0xaf, 0x00, 0xc8, 0x63, 0x91, - 0x65, 0x82, 0x17, 0x4c, 0xd6, 0xb1, 0x35, 0x79, 0x85, 0x37, 0x60, 0xe8, 0xe5, 0xbc, 0x50, 0xea, - 0x0b, 0x85, 0xd3, 0xd6, 0x6c, 0xb0, 0xfa, 0x5f, 0xd3, 0x65, 0x05, 0xe1, 0x25, 0xe8, 0x4a, 0x66, - 0x44, 0x96, 0x72, 0x17, 0xdc, 0x91, 0x6f, 0xd5, 0x04, 0x87, 0x20, 0xdc, 0x12, 0xf4, 0xcf, 0xb2, - 0x70, 0x4b, 0xec, 0x4c, 0x51, 0xdb, 0xcd, 0xb4, 0x8a, 0x4f, 0x33, 0x69, 0x5f, 0x66, 0x04, 0x75, - 0xec, 0xdb, 0xbd, 0x9a, 0x90, 0x86, 0x4c, 0x51, 0xb7, 0x29, 0x53, 0x0c, 0x4f, 0x0a, 0x51, 0x3c, - 0xf3, 0x6c, 0xee, 0x4b, 0x9e, 0x83, 0x76, 0xb5, 0x7a, 0xee, 0xfa, 0x1d, 0x06, 0xfc, 0x70, 0xe2, - 0xa4, 0x55, 0xdf, 0x92, 0xa5, 0xfc, 0x68, 0x91, 0xc1, 0xa1, 0x6f, 0xb9, 0x38, 0x82, 0x78, 0xec, - 0x0f, 0x78, 0xef, 0x3e, 0x7d, 0x1c, 0x7f, 0x8e, 0xec, 0x35, 0xee, 0xfc, 0x99, 0x93, 0x8e, 0xfd, - 0x1b, 0xe6, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe8, 0x0f, 0x27, 0x7b, 0x26, 0x02, 0x00, 0x00, + return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{5} +} + +var File_protob_ecdsa_resharing_proto protoreflect.FileDescriptor + +var file_protob_ecdsa_resharing_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x65, 0x63, 0x64, 0x73, 0x61, 0x2d, 0x72, + 0x65, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, + 0x62, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x74, 0x73, 0x73, 0x6c, 0x69, 0x62, 0x2e, 0x65, + 0x63, 0x64, 0x73, 0x61, 0x2e, 0x72, 0x65, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x74, + 0x0a, 0x0f, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x63, 0x64, 0x73, 0x61, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x63, 0x64, 0x73, 0x61, 0x50, 0x75, 0x62, + 0x58, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x63, 0x64, 0x73, 0x61, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x63, 0x64, 0x73, 0x61, 0x50, 0x75, 0x62, + 0x59, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x76, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xcf, 0x01, 0x0a, 0x10, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, + 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x69, + 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, + 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x4e, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x69, 0x6c, + 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, + 0x52, 0x0d, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, + 0x17, 0x0a, 0x07, 0x6e, 0x5f, 0x74, 0x69, 0x6c, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x06, 0x6e, 0x54, 0x69, 0x6c, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x31, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x68, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x32, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x68, 0x32, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6c, 0x6e, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x31, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x64, 0x6c, + 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x31, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6c, 0x6e, 0x70, 0x72, + 0x6f, 0x6f, 0x66, 0x5f, 0x32, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x64, 0x6c, 0x6e, + 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x32, 0x22, 0x12, 0x0a, 0x10, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x22, 0x28, 0x0a, 0x10, 0x44, 0x47, + 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x14, + 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x5f, 0x64, 0x65, + 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, + 0x52, 0x0d, 0x76, 0x44, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x11, 0x0a, 0x0f, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x34, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x42, 0x11, 0x5a, 0x0f, 0x65, 0x63, 0x64, 0x73, 0x61, 0x2f, 0x72, 0x65, 0x73, 0x68, + 0x61, 0x72, 0x69, 0x6e, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_protob_ecdsa_resharing_proto_rawDescOnce sync.Once + file_protob_ecdsa_resharing_proto_rawDescData = file_protob_ecdsa_resharing_proto_rawDesc +) + +func file_protob_ecdsa_resharing_proto_rawDescGZIP() []byte { + file_protob_ecdsa_resharing_proto_rawDescOnce.Do(func() { + file_protob_ecdsa_resharing_proto_rawDescData = protoimpl.X.CompressGZIP(file_protob_ecdsa_resharing_proto_rawDescData) + }) + return file_protob_ecdsa_resharing_proto_rawDescData +} + +var file_protob_ecdsa_resharing_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_protob_ecdsa_resharing_proto_goTypes = []interface{}{ + (*DGRound1Message)(nil), // 0: binance.tsslib.ecdsa.resharing.DGRound1Message + (*DGRound2Message1)(nil), // 1: binance.tsslib.ecdsa.resharing.DGRound2Message1 + (*DGRound2Message2)(nil), // 2: binance.tsslib.ecdsa.resharing.DGRound2Message2 + (*DGRound3Message1)(nil), // 3: binance.tsslib.ecdsa.resharing.DGRound3Message1 + (*DGRound3Message2)(nil), // 4: binance.tsslib.ecdsa.resharing.DGRound3Message2 + (*DGRound4Message)(nil), // 5: binance.tsslib.ecdsa.resharing.DGRound4Message +} +var file_protob_ecdsa_resharing_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_protob_ecdsa_resharing_proto_init() } +func file_protob_ecdsa_resharing_proto_init() { + if File_protob_ecdsa_resharing_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protob_ecdsa_resharing_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound1Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_resharing_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound2Message1); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_resharing_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound2Message2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_resharing_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound3Message1); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_resharing_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound3Message2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_resharing_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound4Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protob_ecdsa_resharing_proto_rawDesc, + NumEnums: 0, + NumMessages: 6, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protob_ecdsa_resharing_proto_goTypes, + DependencyIndexes: file_protob_ecdsa_resharing_proto_depIdxs, + MessageInfos: file_protob_ecdsa_resharing_proto_msgTypes, + }.Build() + File_protob_ecdsa_resharing_proto = out.File + file_protob_ecdsa_resharing_proto_rawDesc = nil + file_protob_ecdsa_resharing_proto_goTypes = nil + file_protob_ecdsa_resharing_proto_depIdxs = nil } diff --git a/ecdsa/signing/ecdsa-signing.pb.go b/ecdsa/signing/ecdsa-signing.pb.go index 7090a971..4b8a55d2 100644 --- a/ecdsa/signing/ecdsa-signing.pb.go +++ b/ecdsa/signing/ecdsa-signing.pb.go @@ -1,77 +1,84 @@ -// Copyright © 2019-2020 Binance +// Copyright © 2019 Binance // // This file is part of Binance. The full Binance copyright notice, including // terms governing use, modification, and redistribution, is contained in the // file LICENSE at the root of the source code distribution tree. // Code generated by protoc-gen-go. DO NOT EDIT. -// source: ecdsa-signing.proto +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: protob/ecdsa-signing.proto package signing import ( - fmt "fmt" - math "math" - - proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // // Represents a P2P message sent to each party during Round 1 of the ECDSA TSS signing protocol. type SignRound1Message1 struct { - C []byte `protobuf:"bytes,1,opt,name=c,proto3" json:"c,omitempty"` - RangeProofAlice [][]byte `protobuf:"bytes,2,rep,name=range_proof_alice,json=rangeProofAlice,proto3" json:"range_proof_alice,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound1Message1) Reset() { *m = SignRound1Message1{} } -func (m *SignRound1Message1) String() string { return proto.CompactTextString(m) } -func (*SignRound1Message1) ProtoMessage() {} -func (*SignRound1Message1) Descriptor() ([]byte, []int) { - return fileDescriptor_d7fd069ec73c8494, []int{0} + C []byte `protobuf:"bytes,1,opt,name=c,proto3" json:"c,omitempty"` + RangeProofAlice [][]byte `protobuf:"bytes,2,rep,name=range_proof_alice,json=rangeProofAlice,proto3" json:"range_proof_alice,omitempty"` } -func (m *SignRound1Message1) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound1Message1.Unmarshal(m, b) -} -func (m *SignRound1Message1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound1Message1.Marshal(b, m, deterministic) -} -func (m *SignRound1Message1) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound1Message1.Merge(m, src) +func (x *SignRound1Message1) Reset() { + *x = SignRound1Message1{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound1Message1) XXX_Size() int { - return xxx_messageInfo_SignRound1Message1.Size(m) + +func (x *SignRound1Message1) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound1Message1) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound1Message1.DiscardUnknown(m) + +func (*SignRound1Message1) ProtoMessage() {} + +func (x *SignRound1Message1) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound1Message1 proto.InternalMessageInfo +// Deprecated: Use SignRound1Message1.ProtoReflect.Descriptor instead. +func (*SignRound1Message1) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{0} +} -func (m *SignRound1Message1) GetC() []byte { - if m != nil { - return m.C +func (x *SignRound1Message1) GetC() []byte { + if x != nil { + return x.C } return nil } -func (m *SignRound1Message1) GetRangeProofAlice() [][]byte { - if m != nil { - return m.RangeProofAlice +func (x *SignRound1Message1) GetRangeProofAlice() [][]byte { + if x != nil { + return x.RangeProofAlice } return nil } @@ -79,40 +86,48 @@ func (m *SignRound1Message1) GetRangeProofAlice() [][]byte { // // Represents a BROADCAST message sent to all parties during Round 1 of the ECDSA TSS signing protocol. type SignRound1Message2 struct { - Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound1Message2) Reset() { *m = SignRound1Message2{} } -func (m *SignRound1Message2) String() string { return proto.CompactTextString(m) } -func (*SignRound1Message2) ProtoMessage() {} -func (*SignRound1Message2) Descriptor() ([]byte, []int) { - return fileDescriptor_d7fd069ec73c8494, []int{1} + Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` } -func (m *SignRound1Message2) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound1Message2.Unmarshal(m, b) -} -func (m *SignRound1Message2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound1Message2.Marshal(b, m, deterministic) -} -func (m *SignRound1Message2) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound1Message2.Merge(m, src) +func (x *SignRound1Message2) Reset() { + *x = SignRound1Message2{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound1Message2) XXX_Size() int { - return xxx_messageInfo_SignRound1Message2.Size(m) + +func (x *SignRound1Message2) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound1Message2) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound1Message2.DiscardUnknown(m) + +func (*SignRound1Message2) ProtoMessage() {} + +func (x *SignRound1Message2) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound1Message2 proto.InternalMessageInfo +// Deprecated: Use SignRound1Message2.ProtoReflect.Descriptor instead. +func (*SignRound1Message2) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{1} +} -func (m *SignRound1Message2) GetCommitment() []byte { - if m != nil { - return m.Commitment +func (x *SignRound1Message2) GetCommitment() []byte { + if x != nil { + return x.Commitment } return nil } @@ -120,64 +135,72 @@ func (m *SignRound1Message2) GetCommitment() []byte { // // Represents a P2P message sent to each party during Round 2 of the ECDSA TSS signing protocol. type SignRound2Message struct { - C1 []byte `protobuf:"bytes,1,opt,name=c1,proto3" json:"c1,omitempty"` - C2 []byte `protobuf:"bytes,2,opt,name=c2,proto3" json:"c2,omitempty"` - ProofBob [][]byte `protobuf:"bytes,3,rep,name=proof_bob,json=proofBob,proto3" json:"proof_bob,omitempty"` - ProofBobWc [][]byte `protobuf:"bytes,4,rep,name=proof_bob_wc,json=proofBobWc,proto3" json:"proof_bob_wc,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignRound2Message) Reset() { *m = SignRound2Message{} } -func (m *SignRound2Message) String() string { return proto.CompactTextString(m) } -func (*SignRound2Message) ProtoMessage() {} -func (*SignRound2Message) Descriptor() ([]byte, []int) { - return fileDescriptor_d7fd069ec73c8494, []int{2} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + C1 []byte `protobuf:"bytes,1,opt,name=c1,proto3" json:"c1,omitempty"` + C2 []byte `protobuf:"bytes,2,opt,name=c2,proto3" json:"c2,omitempty"` + ProofBob [][]byte `protobuf:"bytes,3,rep,name=proof_bob,json=proofBob,proto3" json:"proof_bob,omitempty"` + ProofBobWc [][]byte `protobuf:"bytes,4,rep,name=proof_bob_wc,json=proofBobWc,proto3" json:"proof_bob_wc,omitempty"` +} + +func (x *SignRound2Message) Reset() { + *x = SignRound2Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound2Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound2Message.Unmarshal(m, b) -} -func (m *SignRound2Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound2Message.Marshal(b, m, deterministic) -} -func (m *SignRound2Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound2Message.Merge(m, src) +func (x *SignRound2Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound2Message) XXX_Size() int { - return xxx_messageInfo_SignRound2Message.Size(m) -} -func (m *SignRound2Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound2Message.DiscardUnknown(m) + +func (*SignRound2Message) ProtoMessage() {} + +func (x *SignRound2Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound2Message proto.InternalMessageInfo +// Deprecated: Use SignRound2Message.ProtoReflect.Descriptor instead. +func (*SignRound2Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{2} +} -func (m *SignRound2Message) GetC1() []byte { - if m != nil { - return m.C1 +func (x *SignRound2Message) GetC1() []byte { + if x != nil { + return x.C1 } return nil } -func (m *SignRound2Message) GetC2() []byte { - if m != nil { - return m.C2 +func (x *SignRound2Message) GetC2() []byte { + if x != nil { + return x.C2 } return nil } -func (m *SignRound2Message) GetProofBob() [][]byte { - if m != nil { - return m.ProofBob +func (x *SignRound2Message) GetProofBob() [][]byte { + if x != nil { + return x.ProofBob } return nil } -func (m *SignRound2Message) GetProofBobWc() [][]byte { - if m != nil { - return m.ProofBobWc +func (x *SignRound2Message) GetProofBobWc() [][]byte { + if x != nil { + return x.ProofBobWc } return nil } @@ -185,40 +208,48 @@ func (m *SignRound2Message) GetProofBobWc() [][]byte { // // Represents a BROADCAST message sent to all parties during Round 3 of the ECDSA TSS signing protocol. type SignRound3Message struct { - Theta []byte `protobuf:"bytes,1,opt,name=theta,proto3" json:"theta,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound3Message) Reset() { *m = SignRound3Message{} } -func (m *SignRound3Message) String() string { return proto.CompactTextString(m) } -func (*SignRound3Message) ProtoMessage() {} -func (*SignRound3Message) Descriptor() ([]byte, []int) { - return fileDescriptor_d7fd069ec73c8494, []int{3} + Theta []byte `protobuf:"bytes,1,opt,name=theta,proto3" json:"theta,omitempty"` } -func (m *SignRound3Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound3Message.Unmarshal(m, b) -} -func (m *SignRound3Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound3Message.Marshal(b, m, deterministic) -} -func (m *SignRound3Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound3Message.Merge(m, src) +func (x *SignRound3Message) Reset() { + *x = SignRound3Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound3Message) XXX_Size() int { - return xxx_messageInfo_SignRound3Message.Size(m) + +func (x *SignRound3Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound3Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound3Message.DiscardUnknown(m) + +func (*SignRound3Message) ProtoMessage() {} + +func (x *SignRound3Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound3Message proto.InternalMessageInfo +// Deprecated: Use SignRound3Message.ProtoReflect.Descriptor instead. +func (*SignRound3Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{3} +} -func (m *SignRound3Message) GetTheta() []byte { - if m != nil { - return m.Theta +func (x *SignRound3Message) GetTheta() []byte { + if x != nil { + return x.Theta } return nil } @@ -226,64 +257,72 @@ func (m *SignRound3Message) GetTheta() []byte { // // Represents a BROADCAST message sent to all parties during Round 4 of the ECDSA TSS signing protocol. type SignRound4Message struct { - DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` - ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` - ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` - ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignRound4Message) Reset() { *m = SignRound4Message{} } -func (m *SignRound4Message) String() string { return proto.CompactTextString(m) } -func (*SignRound4Message) ProtoMessage() {} -func (*SignRound4Message) Descriptor() ([]byte, []int) { - return fileDescriptor_d7fd069ec73c8494, []int{4} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` + ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` + ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` + ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` +} + +func (x *SignRound4Message) Reset() { + *x = SignRound4Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound4Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound4Message.Unmarshal(m, b) -} -func (m *SignRound4Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound4Message.Marshal(b, m, deterministic) -} -func (m *SignRound4Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound4Message.Merge(m, src) +func (x *SignRound4Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound4Message) XXX_Size() int { - return xxx_messageInfo_SignRound4Message.Size(m) -} -func (m *SignRound4Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound4Message.DiscardUnknown(m) + +func (*SignRound4Message) ProtoMessage() {} + +func (x *SignRound4Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound4Message proto.InternalMessageInfo +// Deprecated: Use SignRound4Message.ProtoReflect.Descriptor instead. +func (*SignRound4Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{4} +} -func (m *SignRound4Message) GetDeCommitment() [][]byte { - if m != nil { - return m.DeCommitment +func (x *SignRound4Message) GetDeCommitment() [][]byte { + if x != nil { + return x.DeCommitment } return nil } -func (m *SignRound4Message) GetProofAlphaX() []byte { - if m != nil { - return m.ProofAlphaX +func (x *SignRound4Message) GetProofAlphaX() []byte { + if x != nil { + return x.ProofAlphaX } return nil } -func (m *SignRound4Message) GetProofAlphaY() []byte { - if m != nil { - return m.ProofAlphaY +func (x *SignRound4Message) GetProofAlphaY() []byte { + if x != nil { + return x.ProofAlphaY } return nil } -func (m *SignRound4Message) GetProofT() []byte { - if m != nil { - return m.ProofT +func (x *SignRound4Message) GetProofT() []byte { + if x != nil { + return x.ProofT } return nil } @@ -291,40 +330,48 @@ func (m *SignRound4Message) GetProofT() []byte { // // Represents a BROADCAST message sent to all parties during Round 5 of the ECDSA TSS signing protocol. type SignRound5Message struct { - Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound5Message) Reset() { *m = SignRound5Message{} } -func (m *SignRound5Message) String() string { return proto.CompactTextString(m) } -func (*SignRound5Message) ProtoMessage() {} -func (*SignRound5Message) Descriptor() ([]byte, []int) { - return fileDescriptor_d7fd069ec73c8494, []int{5} + Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` } -func (m *SignRound5Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound5Message.Unmarshal(m, b) -} -func (m *SignRound5Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound5Message.Marshal(b, m, deterministic) -} -func (m *SignRound5Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound5Message.Merge(m, src) +func (x *SignRound5Message) Reset() { + *x = SignRound5Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound5Message) XXX_Size() int { - return xxx_messageInfo_SignRound5Message.Size(m) + +func (x *SignRound5Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound5Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound5Message.DiscardUnknown(m) + +func (*SignRound5Message) ProtoMessage() {} + +func (x *SignRound5Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound5Message proto.InternalMessageInfo +// Deprecated: Use SignRound5Message.ProtoReflect.Descriptor instead. +func (*SignRound5Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{5} +} -func (m *SignRound5Message) GetCommitment() []byte { - if m != nil { - return m.Commitment +func (x *SignRound5Message) GetCommitment() []byte { + if x != nil { + return x.Commitment } return nil } @@ -332,96 +379,104 @@ func (m *SignRound5Message) GetCommitment() []byte { // // Represents a BROADCAST message sent to all parties during Round 6 of the ECDSA TSS signing protocol. type SignRound6Message struct { - DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` - ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` - ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` - ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` - VProofAlphaX []byte `protobuf:"bytes,5,opt,name=v_proof_alpha_x,json=vProofAlphaX,proto3" json:"v_proof_alpha_x,omitempty"` - VProofAlphaY []byte `protobuf:"bytes,6,opt,name=v_proof_alpha_y,json=vProofAlphaY,proto3" json:"v_proof_alpha_y,omitempty"` - VProofT []byte `protobuf:"bytes,7,opt,name=v_proof_t,json=vProofT,proto3" json:"v_proof_t,omitempty"` - VProofU []byte `protobuf:"bytes,8,opt,name=v_proof_u,json=vProofU,proto3" json:"v_proof_u,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignRound6Message) Reset() { *m = SignRound6Message{} } -func (m *SignRound6Message) String() string { return proto.CompactTextString(m) } -func (*SignRound6Message) ProtoMessage() {} -func (*SignRound6Message) Descriptor() ([]byte, []int) { - return fileDescriptor_d7fd069ec73c8494, []int{6} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` + ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` + ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` + ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` + VProofAlphaX []byte `protobuf:"bytes,5,opt,name=v_proof_alpha_x,json=vProofAlphaX,proto3" json:"v_proof_alpha_x,omitempty"` + VProofAlphaY []byte `protobuf:"bytes,6,opt,name=v_proof_alpha_y,json=vProofAlphaY,proto3" json:"v_proof_alpha_y,omitempty"` + VProofT []byte `protobuf:"bytes,7,opt,name=v_proof_t,json=vProofT,proto3" json:"v_proof_t,omitempty"` + VProofU []byte `protobuf:"bytes,8,opt,name=v_proof_u,json=vProofU,proto3" json:"v_proof_u,omitempty"` +} + +func (x *SignRound6Message) Reset() { + *x = SignRound6Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound6Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound6Message.Unmarshal(m, b) -} -func (m *SignRound6Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound6Message.Marshal(b, m, deterministic) -} -func (m *SignRound6Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound6Message.Merge(m, src) -} -func (m *SignRound6Message) XXX_Size() int { - return xxx_messageInfo_SignRound6Message.Size(m) +func (x *SignRound6Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound6Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound6Message.DiscardUnknown(m) + +func (*SignRound6Message) ProtoMessage() {} + +func (x *SignRound6Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound6Message proto.InternalMessageInfo +// Deprecated: Use SignRound6Message.ProtoReflect.Descriptor instead. +func (*SignRound6Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{6} +} -func (m *SignRound6Message) GetDeCommitment() [][]byte { - if m != nil { - return m.DeCommitment +func (x *SignRound6Message) GetDeCommitment() [][]byte { + if x != nil { + return x.DeCommitment } return nil } -func (m *SignRound6Message) GetProofAlphaX() []byte { - if m != nil { - return m.ProofAlphaX +func (x *SignRound6Message) GetProofAlphaX() []byte { + if x != nil { + return x.ProofAlphaX } return nil } -func (m *SignRound6Message) GetProofAlphaY() []byte { - if m != nil { - return m.ProofAlphaY +func (x *SignRound6Message) GetProofAlphaY() []byte { + if x != nil { + return x.ProofAlphaY } return nil } -func (m *SignRound6Message) GetProofT() []byte { - if m != nil { - return m.ProofT +func (x *SignRound6Message) GetProofT() []byte { + if x != nil { + return x.ProofT } return nil } -func (m *SignRound6Message) GetVProofAlphaX() []byte { - if m != nil { - return m.VProofAlphaX +func (x *SignRound6Message) GetVProofAlphaX() []byte { + if x != nil { + return x.VProofAlphaX } return nil } -func (m *SignRound6Message) GetVProofAlphaY() []byte { - if m != nil { - return m.VProofAlphaY +func (x *SignRound6Message) GetVProofAlphaY() []byte { + if x != nil { + return x.VProofAlphaY } return nil } -func (m *SignRound6Message) GetVProofT() []byte { - if m != nil { - return m.VProofT +func (x *SignRound6Message) GetVProofT() []byte { + if x != nil { + return x.VProofT } return nil } -func (m *SignRound6Message) GetVProofU() []byte { - if m != nil { - return m.VProofU +func (x *SignRound6Message) GetVProofU() []byte { + if x != nil { + return x.VProofU } return nil } @@ -429,40 +484,48 @@ func (m *SignRound6Message) GetVProofU() []byte { // // Represents a BROADCAST message sent to all parties during Round 7 of the ECDSA TSS signing protocol. type SignRound7Message struct { - Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound7Message) Reset() { *m = SignRound7Message{} } -func (m *SignRound7Message) String() string { return proto.CompactTextString(m) } -func (*SignRound7Message) ProtoMessage() {} -func (*SignRound7Message) Descriptor() ([]byte, []int) { - return fileDescriptor_d7fd069ec73c8494, []int{7} + Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` } -func (m *SignRound7Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound7Message.Unmarshal(m, b) -} -func (m *SignRound7Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound7Message.Marshal(b, m, deterministic) -} -func (m *SignRound7Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound7Message.Merge(m, src) +func (x *SignRound7Message) Reset() { + *x = SignRound7Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound7Message) XXX_Size() int { - return xxx_messageInfo_SignRound7Message.Size(m) + +func (x *SignRound7Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound7Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound7Message.DiscardUnknown(m) + +func (*SignRound7Message) ProtoMessage() {} + +func (x *SignRound7Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound7Message proto.InternalMessageInfo +// Deprecated: Use SignRound7Message.ProtoReflect.Descriptor instead. +func (*SignRound7Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{7} +} -func (m *SignRound7Message) GetCommitment() []byte { - if m != nil { - return m.Commitment +func (x *SignRound7Message) GetCommitment() []byte { + if x != nil { + return x.Commitment } return nil } @@ -470,40 +533,48 @@ func (m *SignRound7Message) GetCommitment() []byte { // // Represents a BROADCAST message sent to all parties during Round 8 of the ECDSA TSS signing protocol. type SignRound8Message struct { - DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound8Message) Reset() { *m = SignRound8Message{} } -func (m *SignRound8Message) String() string { return proto.CompactTextString(m) } -func (*SignRound8Message) ProtoMessage() {} -func (*SignRound8Message) Descriptor() ([]byte, []int) { - return fileDescriptor_d7fd069ec73c8494, []int{8} + DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` } -func (m *SignRound8Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound8Message.Unmarshal(m, b) -} -func (m *SignRound8Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound8Message.Marshal(b, m, deterministic) -} -func (m *SignRound8Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound8Message.Merge(m, src) +func (x *SignRound8Message) Reset() { + *x = SignRound8Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound8Message) XXX_Size() int { - return xxx_messageInfo_SignRound8Message.Size(m) + +func (x *SignRound8Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound8Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound8Message.DiscardUnknown(m) + +func (*SignRound8Message) ProtoMessage() {} + +func (x *SignRound8Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound8Message proto.InternalMessageInfo +// Deprecated: Use SignRound8Message.ProtoReflect.Descriptor instead. +func (*SignRound8Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{8} +} -func (m *SignRound8Message) GetDeCommitment() [][]byte { - if m != nil { - return m.DeCommitment +func (x *SignRound8Message) GetDeCommitment() [][]byte { + if x != nil { + return x.DeCommitment } return nil } @@ -511,85 +582,297 @@ func (m *SignRound8Message) GetDeCommitment() [][]byte { // // Represents a BROADCAST message sent to all parties during Round 9 of the ECDSA TSS signing protocol. type SignRound9Message struct { - S []byte `protobuf:"bytes,1,opt,name=s,proto3" json:"s,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound9Message) Reset() { *m = SignRound9Message{} } -func (m *SignRound9Message) String() string { return proto.CompactTextString(m) } -func (*SignRound9Message) ProtoMessage() {} -func (*SignRound9Message) Descriptor() ([]byte, []int) { - return fileDescriptor_d7fd069ec73c8494, []int{9} + S []byte `protobuf:"bytes,1,opt,name=s,proto3" json:"s,omitempty"` } -func (m *SignRound9Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound9Message.Unmarshal(m, b) -} -func (m *SignRound9Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound9Message.Marshal(b, m, deterministic) -} -func (m *SignRound9Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound9Message.Merge(m, src) +func (x *SignRound9Message) Reset() { + *x = SignRound9Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_signing_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound9Message) XXX_Size() int { - return xxx_messageInfo_SignRound9Message.Size(m) + +func (x *SignRound9Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound9Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound9Message.DiscardUnknown(m) + +func (*SignRound9Message) ProtoMessage() {} + +func (x *SignRound9Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_signing_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound9Message proto.InternalMessageInfo +// Deprecated: Use SignRound9Message.ProtoReflect.Descriptor instead. +func (*SignRound9Message) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_signing_proto_rawDescGZIP(), []int{9} +} -func (m *SignRound9Message) GetS() []byte { - if m != nil { - return m.S +func (x *SignRound9Message) GetS() []byte { + if x != nil { + return x.S } return nil } -func init() { - proto.RegisterType((*SignRound1Message1)(nil), "binance.tsslib.ecdsa.signing.SignRound1Message1") - proto.RegisterType((*SignRound1Message2)(nil), "binance.tsslib.ecdsa.signing.SignRound1Message2") - proto.RegisterType((*SignRound2Message)(nil), "binance.tsslib.ecdsa.signing.SignRound2Message") - proto.RegisterType((*SignRound3Message)(nil), "binance.tsslib.ecdsa.signing.SignRound3Message") - proto.RegisterType((*SignRound4Message)(nil), "binance.tsslib.ecdsa.signing.SignRound4Message") - proto.RegisterType((*SignRound5Message)(nil), "binance.tsslib.ecdsa.signing.SignRound5Message") - proto.RegisterType((*SignRound6Message)(nil), "binance.tsslib.ecdsa.signing.SignRound6Message") - proto.RegisterType((*SignRound7Message)(nil), "binance.tsslib.ecdsa.signing.SignRound7Message") - proto.RegisterType((*SignRound8Message)(nil), "binance.tsslib.ecdsa.signing.SignRound8Message") - proto.RegisterType((*SignRound9Message)(nil), "binance.tsslib.ecdsa.signing.SignRound9Message") -} - -func init() { proto.RegisterFile("ecdsa-signing.proto", fileDescriptor_d7fd069ec73c8494) } - -var fileDescriptor_d7fd069ec73c8494 = []byte{ - // 409 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x93, 0xc1, 0x8b, 0x13, 0x31, - 0x14, 0xc6, 0x99, 0xe9, 0x6e, 0xbb, 0xfb, 0x9c, 0x5a, 0x36, 0x0a, 0x06, 0x15, 0xa9, 0x11, 0x61, - 0x15, 0x1c, 0x99, 0xe9, 0xaa, 0xeb, 0xd1, 0xf5, 0xac, 0x2c, 0xb5, 0xa2, 0xf5, 0x32, 0x64, 0x32, - 0x71, 0x3a, 0xd0, 0x26, 0xc3, 0x24, 0xad, 0xf6, 0x4f, 0xf1, 0xe4, 0xbf, 0x2a, 0xcd, 0x24, 0x25, - 0x6d, 0x05, 0xf5, 0xe6, 0xf1, 0xbd, 0xef, 0xf7, 0xf2, 0xbd, 0x7c, 0xf0, 0xe0, 0x16, 0x67, 0x85, - 0xa2, 0xcf, 0x54, 0x55, 0x8a, 0x4a, 0x94, 0x71, 0xdd, 0x48, 0x2d, 0xd1, 0xfd, 0xbc, 0x12, 0x54, - 0x30, 0x1e, 0x6b, 0xa5, 0xe6, 0x55, 0x1e, 0x1b, 0x26, 0xb6, 0x0c, 0x79, 0x0f, 0xe8, 0x43, 0x55, - 0x8a, 0xb1, 0x5c, 0x8a, 0x22, 0x79, 0xc7, 0x95, 0xa2, 0x25, 0x4f, 0x50, 0x04, 0x01, 0xc3, 0xc1, - 0x30, 0x38, 0x8f, 0xc6, 0x01, 0x43, 0x4f, 0xe1, 0xac, 0xa1, 0xa2, 0xe4, 0x59, 0xdd, 0x48, 0xf9, - 0x35, 0xa3, 0xf3, 0x8a, 0x71, 0x1c, 0x0e, 0x3b, 0xe7, 0xd1, 0x78, 0x60, 0x84, 0xeb, 0x4d, 0xff, - 0xcd, 0xa6, 0x4d, 0x2e, 0x7e, 0xf3, 0x5e, 0x8a, 0x1e, 0x00, 0x30, 0xb9, 0x58, 0x54, 0x7a, 0xc1, - 0x85, 0xb6, 0x0f, 0x7b, 0x1d, 0xd2, 0xc0, 0xd9, 0x76, 0x2a, 0xb5, 0x53, 0xe8, 0x26, 0x84, 0x2c, - 0xb1, 0x70, 0xc8, 0x12, 0x53, 0xa7, 0x38, 0xb4, 0x75, 0x8a, 0xee, 0xc1, 0x69, 0xbb, 0x50, 0x2e, - 0x73, 0xdc, 0x31, 0xeb, 0x9c, 0x98, 0xc6, 0x95, 0xcc, 0xd1, 0x10, 0xa2, 0xad, 0x98, 0x7d, 0x63, - 0xf8, 0xc8, 0xe8, 0xe0, 0xf4, 0x4f, 0x8c, 0x3c, 0xf1, 0x3c, 0x47, 0xce, 0xf3, 0x36, 0x1c, 0xeb, - 0x19, 0xd7, 0xd4, 0xda, 0xb6, 0x05, 0xf9, 0x11, 0x78, 0xec, 0x85, 0x63, 0x1f, 0x41, 0xbf, 0xe0, - 0xd9, 0xce, 0xbf, 0x36, 0x1e, 0x51, 0xc1, 0xdf, 0x6e, 0x7b, 0x88, 0x40, 0xdf, 0xa5, 0x56, 0xcf, - 0x68, 0xf6, 0xdd, 0xee, 0x7f, 0xa3, 0x6e, 0x23, 0xab, 0x67, 0xf4, 0xf3, 0x3e, 0xb3, 0xc6, 0x9d, - 0x7d, 0x66, 0x8a, 0xee, 0x40, 0xaf, 0x65, 0x34, 0x3e, 0x32, 0x6a, 0xd7, 0x94, 0x13, 0x32, 0xf2, - 0x56, 0x7b, 0xe1, 0x56, 0xfb, 0x53, 0xde, 0x3f, 0x43, 0x6f, 0xea, 0xe5, 0x7f, 0xf5, 0x21, 0xf4, - 0x18, 0x06, 0xab, 0x6c, 0xd7, 0xe2, 0xd8, 0x00, 0xd1, 0xea, 0xda, 0xf3, 0x38, 0xc0, 0xd6, 0xb8, - 0x7b, 0x80, 0x4d, 0xd1, 0x5d, 0x38, 0x75, 0x98, 0xc6, 0x3d, 0x03, 0xf4, 0x5a, 0x60, 0xe2, 0x6b, - 0x4b, 0x7c, 0xe2, 0x6b, 0x1f, 0x77, 0x62, 0x7d, 0xf5, 0xb7, 0xb1, 0x5e, 0x7a, 0x43, 0x97, 0xff, - 0x92, 0x2a, 0x79, 0xe8, 0x4d, 0xbe, 0x76, 0x93, 0x11, 0x04, 0xca, 0x5d, 0xa1, 0xba, 0x1a, 0x7c, - 0xe9, 0x9b, 0xd3, 0x7d, 0x6e, 0x4f, 0x37, 0xef, 0x9a, 0xfb, 0x1e, 0xfd, 0x0a, 0x00, 0x00, 0xff, - 0xff, 0x63, 0x2f, 0x21, 0x2c, 0xf6, 0x03, 0x00, 0x00, +var File_protob_ecdsa_signing_proto protoreflect.FileDescriptor + +var file_protob_ecdsa_signing_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x65, 0x63, 0x64, 0x73, 0x61, 0x2d, 0x73, + 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x62, 0x69, + 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x74, 0x73, 0x73, 0x6c, 0x69, 0x62, 0x2e, 0x65, 0x63, 0x64, + 0x73, 0x61, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x4e, 0x0a, 0x12, 0x53, 0x69, + 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, + 0x12, 0x0c, 0x0a, 0x01, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x63, 0x12, 0x2a, + 0x0a, 0x11, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, + 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0f, 0x72, 0x61, 0x6e, 0x67, 0x65, + 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x69, 0x63, 0x65, 0x22, 0x34, 0x0a, 0x12, 0x53, 0x69, + 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x72, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x63, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x02, 0x63, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x63, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x02, 0x63, 0x32, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x62, + 0x6f, 0x62, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x42, + 0x6f, 0x62, 0x12, 0x20, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x62, 0x6f, 0x62, 0x5f, + 0x77, 0x63, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x42, + 0x6f, 0x62, 0x57, 0x63, 0x22, 0x29, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x68, 0x65, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x74, 0x68, 0x65, 0x74, 0x61, 0x22, + 0x99, 0x01, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x34, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, + 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x58, 0x12, 0x22, + 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, 0x68, + 0x61, 0x59, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x54, 0x22, 0x33, 0x0a, 0x11, 0x53, + 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x35, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x9f, 0x02, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x36, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x64, + 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x70, + 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x78, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x58, 0x12, + 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, + 0x68, 0x61, 0x59, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x54, 0x12, 0x25, 0x0a, 0x0f, + 0x76, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x78, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x76, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, + 0x68, 0x61, 0x58, 0x12, 0x25, 0x0a, 0x0f, 0x76, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, + 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x76, 0x50, + 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x59, 0x12, 0x1a, 0x0a, 0x09, 0x76, 0x5f, + 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x76, + 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x54, 0x12, 0x1a, 0x0a, 0x09, 0x76, 0x5f, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x5f, 0x75, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x76, 0x50, 0x72, 0x6f, 0x6f, + 0x66, 0x55, 0x22, 0x33, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x37, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x38, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x52, + 0x6f, 0x75, 0x6e, 0x64, 0x38, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, + 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x21, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x39, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x01, 0x73, 0x42, 0x0f, 0x5a, 0x0d, 0x65, 0x63, 0x64, 0x73, 0x61, 0x2f, 0x73, 0x69, + 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_protob_ecdsa_signing_proto_rawDescOnce sync.Once + file_protob_ecdsa_signing_proto_rawDescData = file_protob_ecdsa_signing_proto_rawDesc +) + +func file_protob_ecdsa_signing_proto_rawDescGZIP() []byte { + file_protob_ecdsa_signing_proto_rawDescOnce.Do(func() { + file_protob_ecdsa_signing_proto_rawDescData = protoimpl.X.CompressGZIP(file_protob_ecdsa_signing_proto_rawDescData) + }) + return file_protob_ecdsa_signing_proto_rawDescData +} + +var file_protob_ecdsa_signing_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_protob_ecdsa_signing_proto_goTypes = []interface{}{ + (*SignRound1Message1)(nil), // 0: binance.tsslib.ecdsa.signing.SignRound1Message1 + (*SignRound1Message2)(nil), // 1: binance.tsslib.ecdsa.signing.SignRound1Message2 + (*SignRound2Message)(nil), // 2: binance.tsslib.ecdsa.signing.SignRound2Message + (*SignRound3Message)(nil), // 3: binance.tsslib.ecdsa.signing.SignRound3Message + (*SignRound4Message)(nil), // 4: binance.tsslib.ecdsa.signing.SignRound4Message + (*SignRound5Message)(nil), // 5: binance.tsslib.ecdsa.signing.SignRound5Message + (*SignRound6Message)(nil), // 6: binance.tsslib.ecdsa.signing.SignRound6Message + (*SignRound7Message)(nil), // 7: binance.tsslib.ecdsa.signing.SignRound7Message + (*SignRound8Message)(nil), // 8: binance.tsslib.ecdsa.signing.SignRound8Message + (*SignRound9Message)(nil), // 9: binance.tsslib.ecdsa.signing.SignRound9Message +} +var file_protob_ecdsa_signing_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_protob_ecdsa_signing_proto_init() } +func file_protob_ecdsa_signing_proto_init() { + if File_protob_ecdsa_signing_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protob_ecdsa_signing_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound1Message1); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound1Message2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound2Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound3Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound4Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound5Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound6Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound7Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound8Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_signing_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound9Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protob_ecdsa_signing_proto_rawDesc, + NumEnums: 0, + NumMessages: 10, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protob_ecdsa_signing_proto_goTypes, + DependencyIndexes: file_protob_ecdsa_signing_proto_depIdxs, + MessageInfos: file_protob_ecdsa_signing_proto_msgTypes, + }.Build() + File_protob_ecdsa_signing_proto = out.File + file_protob_ecdsa_signing_proto_rawDesc = nil + file_protob_ecdsa_signing_proto_goTypes = nil + file_protob_ecdsa_signing_proto_depIdxs = nil } diff --git a/eddsa/keygen/eddsa-keygen.pb.go b/eddsa/keygen/eddsa-keygen.pb.go index 3a51b2c4..84327b87 100644 --- a/eddsa/keygen/eddsa-keygen.pb.go +++ b/eddsa/keygen/eddsa-keygen.pb.go @@ -1,69 +1,76 @@ -// Copyright © 2019-2020 Binance +// Copyright © 2019 Binance // // This file is part of Binance. The full Binance copyright notice, including // terms governing use, modification, and redistribution, is contained in the // file LICENSE at the root of the source code distribution tree. // Code generated by protoc-gen-go. DO NOT EDIT. -// source: eddsa-keygen.proto +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: protob/eddsa-keygen.proto package keygen import ( - fmt "fmt" - math "math" - - proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // // Represents a BROADCAST message sent during Round 1 of the EDDSA TSS keygen protocol. type KGRound1Message struct { - Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *KGRound1Message) Reset() { *m = KGRound1Message{} } -func (m *KGRound1Message) String() string { return proto.CompactTextString(m) } -func (*KGRound1Message) ProtoMessage() {} -func (*KGRound1Message) Descriptor() ([]byte, []int) { - return fileDescriptor_87f3b4615ca57212, []int{0} + Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` } -func (m *KGRound1Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KGRound1Message.Unmarshal(m, b) -} -func (m *KGRound1Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KGRound1Message.Marshal(b, m, deterministic) -} -func (m *KGRound1Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_KGRound1Message.Merge(m, src) +func (x *KGRound1Message) Reset() { + *x = KGRound1Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_keygen_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *KGRound1Message) XXX_Size() int { - return xxx_messageInfo_KGRound1Message.Size(m) + +func (x *KGRound1Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *KGRound1Message) XXX_DiscardUnknown() { - xxx_messageInfo_KGRound1Message.DiscardUnknown(m) + +func (*KGRound1Message) ProtoMessage() {} + +func (x *KGRound1Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_keygen_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_KGRound1Message proto.InternalMessageInfo +// Deprecated: Use KGRound1Message.ProtoReflect.Descriptor instead. +func (*KGRound1Message) Descriptor() ([]byte, []int) { + return file_protob_eddsa_keygen_proto_rawDescGZIP(), []int{0} +} -func (m *KGRound1Message) GetCommitment() []byte { - if m != nil { - return m.Commitment +func (x *KGRound1Message) GetCommitment() []byte { + if x != nil { + return x.Commitment } return nil } @@ -71,40 +78,48 @@ func (m *KGRound1Message) GetCommitment() []byte { // // Represents a P2P message sent to each party during Round 2 of the EDDSA TSS keygen protocol. type KGRound2Message1 struct { - Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *KGRound2Message1) Reset() { *m = KGRound2Message1{} } -func (m *KGRound2Message1) String() string { return proto.CompactTextString(m) } -func (*KGRound2Message1) ProtoMessage() {} -func (*KGRound2Message1) Descriptor() ([]byte, []int) { - return fileDescriptor_87f3b4615ca57212, []int{1} + Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` } -func (m *KGRound2Message1) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KGRound2Message1.Unmarshal(m, b) -} -func (m *KGRound2Message1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KGRound2Message1.Marshal(b, m, deterministic) -} -func (m *KGRound2Message1) XXX_Merge(src proto.Message) { - xxx_messageInfo_KGRound2Message1.Merge(m, src) +func (x *KGRound2Message1) Reset() { + *x = KGRound2Message1{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_keygen_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *KGRound2Message1) XXX_Size() int { - return xxx_messageInfo_KGRound2Message1.Size(m) + +func (x *KGRound2Message1) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *KGRound2Message1) XXX_DiscardUnknown() { - xxx_messageInfo_KGRound2Message1.DiscardUnknown(m) + +func (*KGRound2Message1) ProtoMessage() {} + +func (x *KGRound2Message1) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_keygen_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_KGRound2Message1 proto.InternalMessageInfo +// Deprecated: Use KGRound2Message1.ProtoReflect.Descriptor instead. +func (*KGRound2Message1) Descriptor() ([]byte, []int) { + return file_protob_eddsa_keygen_proto_rawDescGZIP(), []int{1} +} -func (m *KGRound2Message1) GetShare() []byte { - if m != nil { - return m.Share +func (x *KGRound2Message1) GetShare() []byte { + if x != nil { + return x.Share } return nil } @@ -112,90 +127,187 @@ func (m *KGRound2Message1) GetShare() []byte { // // Represents a BROADCAST message sent to each party during Round 2 of the EDDSA TSS keygen protocol. type KGRound2Message2 struct { - DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` - ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` - ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` - ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *KGRound2Message2) Reset() { *m = KGRound2Message2{} } -func (m *KGRound2Message2) String() string { return proto.CompactTextString(m) } -func (*KGRound2Message2) ProtoMessage() {} -func (*KGRound2Message2) Descriptor() ([]byte, []int) { - return fileDescriptor_87f3b4615ca57212, []int{2} -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *KGRound2Message2) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KGRound2Message2.Unmarshal(m, b) + DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` + ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` + ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` + ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` } -func (m *KGRound2Message2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KGRound2Message2.Marshal(b, m, deterministic) -} -func (m *KGRound2Message2) XXX_Merge(src proto.Message) { - xxx_messageInfo_KGRound2Message2.Merge(m, src) + +func (x *KGRound2Message2) Reset() { + *x = KGRound2Message2{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_keygen_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *KGRound2Message2) XXX_Size() int { - return xxx_messageInfo_KGRound2Message2.Size(m) + +func (x *KGRound2Message2) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *KGRound2Message2) XXX_DiscardUnknown() { - xxx_messageInfo_KGRound2Message2.DiscardUnknown(m) + +func (*KGRound2Message2) ProtoMessage() {} + +func (x *KGRound2Message2) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_keygen_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_KGRound2Message2 proto.InternalMessageInfo +// Deprecated: Use KGRound2Message2.ProtoReflect.Descriptor instead. +func (*KGRound2Message2) Descriptor() ([]byte, []int) { + return file_protob_eddsa_keygen_proto_rawDescGZIP(), []int{2} +} -func (m *KGRound2Message2) GetDeCommitment() [][]byte { - if m != nil { - return m.DeCommitment +func (x *KGRound2Message2) GetDeCommitment() [][]byte { + if x != nil { + return x.DeCommitment } return nil } -func (m *KGRound2Message2) GetProofAlphaX() []byte { - if m != nil { - return m.ProofAlphaX +func (x *KGRound2Message2) GetProofAlphaX() []byte { + if x != nil { + return x.ProofAlphaX } return nil } -func (m *KGRound2Message2) GetProofAlphaY() []byte { - if m != nil { - return m.ProofAlphaY +func (x *KGRound2Message2) GetProofAlphaY() []byte { + if x != nil { + return x.ProofAlphaY } return nil } -func (m *KGRound2Message2) GetProofT() []byte { - if m != nil { - return m.ProofT +func (x *KGRound2Message2) GetProofT() []byte { + if x != nil { + return x.ProofT } return nil } -func init() { - proto.RegisterType((*KGRound1Message)(nil), "binance.tsslib.eddsa.keygen.KGRound1Message") - proto.RegisterType((*KGRound2Message1)(nil), "binance.tsslib.eddsa.keygen.KGRound2Message1") - proto.RegisterType((*KGRound2Message2)(nil), "binance.tsslib.eddsa.keygen.KGRound2Message2") -} - -func init() { proto.RegisterFile("eddsa-keygen.proto", fileDescriptor_87f3b4615ca57212) } - -var fileDescriptor_87f3b4615ca57212 = []byte{ - // 222 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4a, 0x4d, 0x49, 0x29, - 0x4e, 0xd4, 0xcd, 0x4e, 0xad, 0x4c, 0x4f, 0xcd, 0xd3, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x92, - 0x4e, 0xca, 0xcc, 0x4b, 0xcc, 0x4b, 0x4e, 0xd5, 0x2b, 0x29, 0x2e, 0xce, 0xc9, 0x4c, 0xd2, 0x03, - 0x2b, 0xd1, 0x83, 0x28, 0x51, 0x32, 0xe4, 0xe2, 0xf7, 0x76, 0x0f, 0xca, 0x2f, 0xcd, 0x4b, 0x31, - 0xf4, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c, 0x4f, 0x15, 0x92, 0xe3, 0xe2, 0x4a, 0xce, 0xcf, 0xcd, 0xcd, - 0x2c, 0xc9, 0x4d, 0xcd, 0x2b, 0x91, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x09, 0x42, 0x12, 0x51, 0xd2, - 0xe0, 0x12, 0x80, 0x6a, 0x31, 0x82, 0x6a, 0x31, 0x14, 0x12, 0xe1, 0x62, 0x2d, 0xce, 0x48, 0x2c, - 0x4a, 0x85, 0x2a, 0x87, 0x70, 0x94, 0x66, 0x30, 0x62, 0x28, 0x35, 0x12, 0x52, 0xe6, 0xe2, 0x4d, - 0x49, 0x8d, 0x47, 0xb1, 0x81, 0x59, 0x83, 0x27, 0x88, 0x27, 0x25, 0xd5, 0x19, 0x2e, 0x26, 0xa4, - 0xc4, 0xc5, 0x5b, 0x50, 0x94, 0x9f, 0x9f, 0x16, 0x9f, 0x98, 0x53, 0x90, 0x91, 0x18, 0x5f, 0x21, - 0xc1, 0x04, 0x36, 0x97, 0x1b, 0x2c, 0xe8, 0x08, 0x12, 0x8b, 0x40, 0x57, 0x53, 0x29, 0xc1, 0x8c, - 0xae, 0x26, 0x52, 0x48, 0x9c, 0x8b, 0x1d, 0xa2, 0xa6, 0x44, 0x82, 0x05, 0x2c, 0xcb, 0x06, 0xe6, - 0x86, 0x38, 0xf1, 0x45, 0xf1, 0x80, 0xc3, 0x41, 0x1f, 0x12, 0x0e, 0x49, 0x6c, 0xe0, 0xb0, 0x32, - 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0xcd, 0xf7, 0x07, 0xe1, 0x41, 0x01, 0x00, 0x00, +var File_protob_eddsa_keygen_proto protoreflect.FileDescriptor + +var file_protob_eddsa_keygen_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x65, 0x64, 0x64, 0x73, 0x61, 0x2d, 0x6b, + 0x65, 0x79, 0x67, 0x65, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1b, 0x62, 0x69, 0x6e, + 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x74, 0x73, 0x73, 0x6c, 0x69, 0x62, 0x2e, 0x65, 0x64, 0x64, 0x73, + 0x61, 0x2e, 0x6b, 0x65, 0x79, 0x67, 0x65, 0x6e, 0x22, 0x31, 0x0a, 0x0f, 0x4b, 0x47, 0x52, 0x6f, + 0x75, 0x6e, 0x64, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, + 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x28, 0x0a, 0x10, 0x4b, + 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, + 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x22, 0x98, 0x01, 0x0a, 0x10, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, + 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, + 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x78, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, + 0x68, 0x61, 0x58, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, 0x70, + 0x68, 0x61, 0x5f, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6f, + 0x66, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x59, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x5f, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x54, + 0x42, 0x0e, 0x5a, 0x0c, 0x65, 0x64, 0x64, 0x73, 0x61, 0x2f, 0x6b, 0x65, 0x79, 0x67, 0x65, 0x6e, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_protob_eddsa_keygen_proto_rawDescOnce sync.Once + file_protob_eddsa_keygen_proto_rawDescData = file_protob_eddsa_keygen_proto_rawDesc +) + +func file_protob_eddsa_keygen_proto_rawDescGZIP() []byte { + file_protob_eddsa_keygen_proto_rawDescOnce.Do(func() { + file_protob_eddsa_keygen_proto_rawDescData = protoimpl.X.CompressGZIP(file_protob_eddsa_keygen_proto_rawDescData) + }) + return file_protob_eddsa_keygen_proto_rawDescData +} + +var file_protob_eddsa_keygen_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_protob_eddsa_keygen_proto_goTypes = []interface{}{ + (*KGRound1Message)(nil), // 0: binance.tsslib.eddsa.keygen.KGRound1Message + (*KGRound2Message1)(nil), // 1: binance.tsslib.eddsa.keygen.KGRound2Message1 + (*KGRound2Message2)(nil), // 2: binance.tsslib.eddsa.keygen.KGRound2Message2 +} +var file_protob_eddsa_keygen_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_protob_eddsa_keygen_proto_init() } +func file_protob_eddsa_keygen_proto_init() { + if File_protob_eddsa_keygen_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protob_eddsa_keygen_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KGRound1Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_keygen_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KGRound2Message1); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_keygen_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KGRound2Message2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protob_eddsa_keygen_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protob_eddsa_keygen_proto_goTypes, + DependencyIndexes: file_protob_eddsa_keygen_proto_depIdxs, + MessageInfos: file_protob_eddsa_keygen_proto_msgTypes, + }.Build() + File_protob_eddsa_keygen_proto = out.File + file_protob_eddsa_keygen_proto_rawDesc = nil + file_protob_eddsa_keygen_proto_goTypes = nil + file_protob_eddsa_keygen_proto_depIdxs = nil } diff --git a/eddsa/resharing/eddsa-resharing.pb.go b/eddsa/resharing/eddsa-resharing.pb.go index 35524785..25c33ed4 100644 --- a/eddsa/resharing/eddsa-resharing.pb.go +++ b/eddsa/resharing/eddsa-resharing.pb.go @@ -1,85 +1,92 @@ -// Copyright © 2019-2020 Binance +// Copyright © 2019 Binance // // This file is part of Binance. The full Binance copyright notice, including // terms governing use, modification, and redistribution, is contained in the // file LICENSE at the root of the source code distribution tree. // Code generated by protoc-gen-go. DO NOT EDIT. -// source: eddsa-resharing.proto +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: protob/eddsa-resharing.proto package resharing import ( - fmt "fmt" - math "math" - - proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // // The Round 1 data is broadcast to peers of the New Committee in this message. type DGRound1Message struct { - EddsaPubX []byte `protobuf:"bytes,1,opt,name=eddsa_pub_x,json=eddsaPubX,proto3" json:"eddsa_pub_x,omitempty"` - EddsaPubY []byte `protobuf:"bytes,2,opt,name=eddsa_pub_y,json=eddsaPubY,proto3" json:"eddsa_pub_y,omitempty"` - VCommitment []byte `protobuf:"bytes,3,opt,name=v_commitment,json=vCommitment,proto3" json:"v_commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DGRound1Message) Reset() { *m = DGRound1Message{} } -func (m *DGRound1Message) String() string { return proto.CompactTextString(m) } -func (*DGRound1Message) ProtoMessage() {} -func (*DGRound1Message) Descriptor() ([]byte, []int) { - return fileDescriptor_d6ac4d7ec55a8fe1, []int{0} + EddsaPubX []byte `protobuf:"bytes,1,opt,name=eddsa_pub_x,json=eddsaPubX,proto3" json:"eddsa_pub_x,omitempty"` + EddsaPubY []byte `protobuf:"bytes,2,opt,name=eddsa_pub_y,json=eddsaPubY,proto3" json:"eddsa_pub_y,omitempty"` + VCommitment []byte `protobuf:"bytes,3,opt,name=v_commitment,json=vCommitment,proto3" json:"v_commitment,omitempty"` } -func (m *DGRound1Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound1Message.Unmarshal(m, b) -} -func (m *DGRound1Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound1Message.Marshal(b, m, deterministic) -} -func (m *DGRound1Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound1Message.Merge(m, src) +func (x *DGRound1Message) Reset() { + *x = DGRound1Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_resharing_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound1Message) XXX_Size() int { - return xxx_messageInfo_DGRound1Message.Size(m) + +func (x *DGRound1Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound1Message) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound1Message.DiscardUnknown(m) + +func (*DGRound1Message) ProtoMessage() {} + +func (x *DGRound1Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_resharing_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound1Message proto.InternalMessageInfo +// Deprecated: Use DGRound1Message.ProtoReflect.Descriptor instead. +func (*DGRound1Message) Descriptor() ([]byte, []int) { + return file_protob_eddsa_resharing_proto_rawDescGZIP(), []int{0} +} -func (m *DGRound1Message) GetEddsaPubX() []byte { - if m != nil { - return m.EddsaPubX +func (x *DGRound1Message) GetEddsaPubX() []byte { + if x != nil { + return x.EddsaPubX } return nil } -func (m *DGRound1Message) GetEddsaPubY() []byte { - if m != nil { - return m.EddsaPubY +func (x *DGRound1Message) GetEddsaPubY() []byte { + if x != nil { + return x.EddsaPubY } return nil } -func (m *DGRound1Message) GetVCommitment() []byte { - if m != nil { - return m.VCommitment +func (x *DGRound1Message) GetVCommitment() []byte { + if x != nil { + return x.VCommitment } return nil } @@ -87,73 +94,88 @@ func (m *DGRound1Message) GetVCommitment() []byte { // // The Round 2 "ACK" is broadcast to peers of the Old Committee in this message. type DGRound2Message struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (m *DGRound2Message) Reset() { *m = DGRound2Message{} } -func (m *DGRound2Message) String() string { return proto.CompactTextString(m) } -func (*DGRound2Message) ProtoMessage() {} -func (*DGRound2Message) Descriptor() ([]byte, []int) { - return fileDescriptor_d6ac4d7ec55a8fe1, []int{1} +func (x *DGRound2Message) Reset() { + *x = DGRound2Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_resharing_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound2Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound2Message.Unmarshal(m, b) -} -func (m *DGRound2Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound2Message.Marshal(b, m, deterministic) -} -func (m *DGRound2Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound2Message.Merge(m, src) -} -func (m *DGRound2Message) XXX_Size() int { - return xxx_messageInfo_DGRound2Message.Size(m) +func (x *DGRound2Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound2Message) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound2Message.DiscardUnknown(m) + +func (*DGRound2Message) ProtoMessage() {} + +func (x *DGRound2Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_resharing_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound2Message proto.InternalMessageInfo +// Deprecated: Use DGRound2Message.ProtoReflect.Descriptor instead. +func (*DGRound2Message) Descriptor() ([]byte, []int) { + return file_protob_eddsa_resharing_proto_rawDescGZIP(), []int{1} +} // // The Round 3 data is sent to peers of the New Committee in this message. type DGRound3Message1 struct { - Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DGRound3Message1) Reset() { *m = DGRound3Message1{} } -func (m *DGRound3Message1) String() string { return proto.CompactTextString(m) } -func (*DGRound3Message1) ProtoMessage() {} -func (*DGRound3Message1) Descriptor() ([]byte, []int) { - return fileDescriptor_d6ac4d7ec55a8fe1, []int{2} + Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` } -func (m *DGRound3Message1) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound3Message1.Unmarshal(m, b) -} -func (m *DGRound3Message1) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound3Message1.Marshal(b, m, deterministic) -} -func (m *DGRound3Message1) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound3Message1.Merge(m, src) +func (x *DGRound3Message1) Reset() { + *x = DGRound3Message1{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_resharing_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound3Message1) XXX_Size() int { - return xxx_messageInfo_DGRound3Message1.Size(m) + +func (x *DGRound3Message1) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound3Message1) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound3Message1.DiscardUnknown(m) + +func (*DGRound3Message1) ProtoMessage() {} + +func (x *DGRound3Message1) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_resharing_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound3Message1 proto.InternalMessageInfo +// Deprecated: Use DGRound3Message1.ProtoReflect.Descriptor instead. +func (*DGRound3Message1) Descriptor() ([]byte, []int) { + return file_protob_eddsa_resharing_proto_rawDescGZIP(), []int{2} +} -func (m *DGRound3Message1) GetShare() []byte { - if m != nil { - return m.Share +func (x *DGRound3Message1) GetShare() []byte { + if x != nil { + return x.Share } return nil } @@ -161,40 +183,48 @@ func (m *DGRound3Message1) GetShare() []byte { // // The Round 3 data is broadcast to peers of the New Committee in this message. type DGRound3Message2 struct { - VDecommitment [][]byte `protobuf:"bytes,1,rep,name=v_decommitment,json=vDecommitment,proto3" json:"v_decommitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DGRound3Message2) Reset() { *m = DGRound3Message2{} } -func (m *DGRound3Message2) String() string { return proto.CompactTextString(m) } -func (*DGRound3Message2) ProtoMessage() {} -func (*DGRound3Message2) Descriptor() ([]byte, []int) { - return fileDescriptor_d6ac4d7ec55a8fe1, []int{3} + VDecommitment [][]byte `protobuf:"bytes,1,rep,name=v_decommitment,json=vDecommitment,proto3" json:"v_decommitment,omitempty"` } -func (m *DGRound3Message2) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound3Message2.Unmarshal(m, b) -} -func (m *DGRound3Message2) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound3Message2.Marshal(b, m, deterministic) -} -func (m *DGRound3Message2) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound3Message2.Merge(m, src) +func (x *DGRound3Message2) Reset() { + *x = DGRound3Message2{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_resharing_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound3Message2) XXX_Size() int { - return xxx_messageInfo_DGRound3Message2.Size(m) + +func (x *DGRound3Message2) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DGRound3Message2) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound3Message2.DiscardUnknown(m) + +func (*DGRound3Message2) ProtoMessage() {} + +func (x *DGRound3Message2) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_resharing_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DGRound3Message2 proto.InternalMessageInfo +// Deprecated: Use DGRound3Message2.ProtoReflect.Descriptor instead. +func (*DGRound3Message2) Descriptor() ([]byte, []int) { + return file_protob_eddsa_resharing_proto_rawDescGZIP(), []int{3} +} -func (m *DGRound3Message2) GetVDecommitment() [][]byte { - if m != nil { - return m.VDecommitment +func (x *DGRound3Message2) GetVDecommitment() [][]byte { + if x != nil { + return x.VDecommitment } return nil } @@ -202,60 +232,181 @@ func (m *DGRound3Message2) GetVDecommitment() [][]byte { // // The Round 4 "ACK" is broadcast to peers of the Old and New Committees from the New Committee in this message. type DGRound4Message struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (m *DGRound4Message) Reset() { *m = DGRound4Message{} } -func (m *DGRound4Message) String() string { return proto.CompactTextString(m) } -func (*DGRound4Message) ProtoMessage() {} -func (*DGRound4Message) Descriptor() ([]byte, []int) { - return fileDescriptor_d6ac4d7ec55a8fe1, []int{4} +func (x *DGRound4Message) Reset() { + *x = DGRound4Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_resharing_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DGRound4Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DGRound4Message.Unmarshal(m, b) -} -func (m *DGRound4Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DGRound4Message.Marshal(b, m, deterministic) -} -func (m *DGRound4Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_DGRound4Message.Merge(m, src) -} -func (m *DGRound4Message) XXX_Size() int { - return xxx_messageInfo_DGRound4Message.Size(m) -} -func (m *DGRound4Message) XXX_DiscardUnknown() { - xxx_messageInfo_DGRound4Message.DiscardUnknown(m) +func (x *DGRound4Message) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_DGRound4Message proto.InternalMessageInfo +func (*DGRound4Message) ProtoMessage() {} -func init() { - proto.RegisterType((*DGRound1Message)(nil), "binance.tsslib.eddsa.resharing.DGRound1Message") - proto.RegisterType((*DGRound2Message)(nil), "binance.tsslib.eddsa.resharing.DGRound2Message") - proto.RegisterType((*DGRound3Message1)(nil), "binance.tsslib.eddsa.resharing.DGRound3Message1") - proto.RegisterType((*DGRound3Message2)(nil), "binance.tsslib.eddsa.resharing.DGRound3Message2") - proto.RegisterType((*DGRound4Message)(nil), "binance.tsslib.eddsa.resharing.DGRound4Message") +func (x *DGRound4Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_resharing_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func init() { proto.RegisterFile("eddsa-resharing.proto", fileDescriptor_d6ac4d7ec55a8fe1) } +// Deprecated: Use DGRound4Message.ProtoReflect.Descriptor instead. +func (*DGRound4Message) Descriptor() ([]byte, []int) { + return file_protob_eddsa_resharing_proto_rawDescGZIP(), []int{4} +} + +var File_protob_eddsa_resharing_proto protoreflect.FileDescriptor + +var file_protob_eddsa_resharing_proto_rawDesc = []byte{ + 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x65, 0x64, 0x64, 0x73, 0x61, 0x2d, 0x72, + 0x65, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, + 0x62, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x74, 0x73, 0x73, 0x6c, 0x69, 0x62, 0x2e, 0x65, + 0x64, 0x64, 0x73, 0x61, 0x2e, 0x72, 0x65, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x74, + 0x0a, 0x0f, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x64, 0x64, 0x73, 0x61, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x64, 0x64, 0x73, 0x61, 0x50, 0x75, 0x62, + 0x58, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x64, 0x64, 0x73, 0x61, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x64, 0x64, 0x73, 0x61, 0x50, 0x75, 0x62, + 0x59, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x76, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x28, 0x0a, 0x10, 0x44, 0x47, 0x52, 0x6f, 0x75, + 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x5f, 0x64, 0x65, 0x63, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x76, + 0x44, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x11, 0x0a, 0x0f, + 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x34, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, + 0x11, 0x5a, 0x0f, 0x65, 0x64, 0x64, 0x73, 0x61, 0x2f, 0x72, 0x65, 0x73, 0x68, 0x61, 0x72, 0x69, + 0x6e, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_protob_eddsa_resharing_proto_rawDescOnce sync.Once + file_protob_eddsa_resharing_proto_rawDescData = file_protob_eddsa_resharing_proto_rawDesc +) -var fileDescriptor_d6ac4d7ec55a8fe1 = []byte{ - // 222 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4d, 0x4d, 0x49, 0x29, - 0x4e, 0xd4, 0x2d, 0x4a, 0x2d, 0xce, 0x48, 0x2c, 0xca, 0xcc, 0x4b, 0xd7, 0x2b, 0x28, 0xca, 0x2f, - 0xc9, 0x17, 0x92, 0x4b, 0xca, 0xcc, 0x4b, 0xcc, 0x4b, 0x4e, 0xd5, 0x2b, 0x29, 0x2e, 0xce, 0xc9, - 0x4c, 0xd2, 0x03, 0xab, 0xd2, 0x83, 0xab, 0x52, 0x2a, 0xe1, 0xe2, 0x77, 0x71, 0x0f, 0xca, 0x2f, - 0xcd, 0x4b, 0x31, 0xf4, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c, 0x4f, 0x15, 0x92, 0xe3, 0xe2, 0x06, 0xab, - 0x8a, 0x2f, 0x28, 0x4d, 0x8a, 0xaf, 0x90, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x09, 0xe2, 0x04, 0x0b, - 0x05, 0x94, 0x26, 0x45, 0xa0, 0xca, 0x57, 0x4a, 0x30, 0xa1, 0xca, 0x47, 0x0a, 0x29, 0x72, 0xf1, - 0x94, 0xc5, 0x27, 0xe7, 0xe7, 0xe6, 0x66, 0x96, 0xe4, 0xa6, 0xe6, 0x95, 0x48, 0x30, 0x83, 0x15, - 0x70, 0x97, 0x39, 0xc3, 0x85, 0x94, 0x04, 0xe1, 0xb6, 0x1a, 0x41, 0x6d, 0x55, 0xd2, 0xe0, 0x12, - 0x80, 0x0a, 0x19, 0x43, 0x85, 0x0c, 0x85, 0x44, 0xb8, 0x58, 0x41, 0xee, 0x4c, 0x85, 0xba, 0x01, - 0xc2, 0x51, 0xb2, 0xc4, 0x50, 0x69, 0x24, 0xa4, 0xca, 0xc5, 0x57, 0x16, 0x9f, 0x92, 0x8a, 0x64, - 0x2b, 0xa3, 0x02, 0xb3, 0x06, 0x4f, 0x10, 0x6f, 0x99, 0x0b, 0x92, 0x20, 0x92, 0xbd, 0x26, 0x50, - 0xad, 0x4e, 0x82, 0x51, 0xfc, 0x60, 0xa7, 0xeb, 0xc3, 0xc3, 0x24, 0x89, 0x0d, 0x1c, 0x74, 0xc6, - 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x54, 0x3e, 0x50, 0x06, 0x53, 0x01, 0x00, 0x00, +func file_protob_eddsa_resharing_proto_rawDescGZIP() []byte { + file_protob_eddsa_resharing_proto_rawDescOnce.Do(func() { + file_protob_eddsa_resharing_proto_rawDescData = protoimpl.X.CompressGZIP(file_protob_eddsa_resharing_proto_rawDescData) + }) + return file_protob_eddsa_resharing_proto_rawDescData +} + +var file_protob_eddsa_resharing_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_protob_eddsa_resharing_proto_goTypes = []interface{}{ + (*DGRound1Message)(nil), // 0: binance.tsslib.eddsa.resharing.DGRound1Message + (*DGRound2Message)(nil), // 1: binance.tsslib.eddsa.resharing.DGRound2Message + (*DGRound3Message1)(nil), // 2: binance.tsslib.eddsa.resharing.DGRound3Message1 + (*DGRound3Message2)(nil), // 3: binance.tsslib.eddsa.resharing.DGRound3Message2 + (*DGRound4Message)(nil), // 4: binance.tsslib.eddsa.resharing.DGRound4Message +} +var file_protob_eddsa_resharing_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_protob_eddsa_resharing_proto_init() } +func file_protob_eddsa_resharing_proto_init() { + if File_protob_eddsa_resharing_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protob_eddsa_resharing_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound1Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_resharing_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound2Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_resharing_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound3Message1); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_resharing_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound3Message2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_resharing_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound4Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protob_eddsa_resharing_proto_rawDesc, + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protob_eddsa_resharing_proto_goTypes, + DependencyIndexes: file_protob_eddsa_resharing_proto_depIdxs, + MessageInfos: file_protob_eddsa_resharing_proto_msgTypes, + }.Build() + File_protob_eddsa_resharing_proto = out.File + file_protob_eddsa_resharing_proto_rawDesc = nil + file_protob_eddsa_resharing_proto_goTypes = nil + file_protob_eddsa_resharing_proto_depIdxs = nil } diff --git a/eddsa/signing/eddsa-signing.pb.go b/eddsa/signing/eddsa-signing.pb.go index f24cc787..1f130e09 100644 --- a/eddsa/signing/eddsa-signing.pb.go +++ b/eddsa/signing/eddsa-signing.pb.go @@ -1,69 +1,76 @@ -// Copyright © 2019-2020 Binance +// Copyright © 2019 Binance // // This file is part of Binance. The full Binance copyright notice, including // terms governing use, modification, and redistribution, is contained in the // file LICENSE at the root of the source code distribution tree. // Code generated by protoc-gen-go. DO NOT EDIT. -// source: eddsa-signing.proto +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: protob/eddsa-signing.proto package signing import ( - fmt "fmt" - math "math" - - proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // // Represents a BROADCAST message sent to all parties during Round 1 of the EDDSA TSS signing protocol. type SignRound1Message struct { - Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound1Message) Reset() { *m = SignRound1Message{} } -func (m *SignRound1Message) String() string { return proto.CompactTextString(m) } -func (*SignRound1Message) ProtoMessage() {} -func (*SignRound1Message) Descriptor() ([]byte, []int) { - return fileDescriptor_cf83f80fc7454980, []int{0} + Commitment []byte `protobuf:"bytes,1,opt,name=commitment,proto3" json:"commitment,omitempty"` } -func (m *SignRound1Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound1Message.Unmarshal(m, b) -} -func (m *SignRound1Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound1Message.Marshal(b, m, deterministic) -} -func (m *SignRound1Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound1Message.Merge(m, src) +func (x *SignRound1Message) Reset() { + *x = SignRound1Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_signing_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound1Message) XXX_Size() int { - return xxx_messageInfo_SignRound1Message.Size(m) + +func (x *SignRound1Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound1Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound1Message.DiscardUnknown(m) + +func (*SignRound1Message) ProtoMessage() {} + +func (x *SignRound1Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_signing_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound1Message proto.InternalMessageInfo +// Deprecated: Use SignRound1Message.ProtoReflect.Descriptor instead. +func (*SignRound1Message) Descriptor() ([]byte, []int) { + return file_protob_eddsa_signing_proto_rawDescGZIP(), []int{0} +} -func (m *SignRound1Message) GetCommitment() []byte { - if m != nil { - return m.Commitment +func (x *SignRound1Message) GetCommitment() []byte { + if x != nil { + return x.Commitment } return nil } @@ -71,64 +78,72 @@ func (m *SignRound1Message) GetCommitment() []byte { // // Represents a BROADCAST message sent to all parties during Round 2 of the EDDSA TSS signing protocol. type SignRound2Message struct { - DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` - ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` - ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` - ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SignRound2Message) Reset() { *m = SignRound2Message{} } -func (m *SignRound2Message) String() string { return proto.CompactTextString(m) } -func (*SignRound2Message) ProtoMessage() {} -func (*SignRound2Message) Descriptor() ([]byte, []int) { - return fileDescriptor_cf83f80fc7454980, []int{1} -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SignRound2Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound2Message.Unmarshal(m, b) -} -func (m *SignRound2Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound2Message.Marshal(b, m, deterministic) + DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` + ProofAlphaX []byte `protobuf:"bytes,2,opt,name=proof_alpha_x,json=proofAlphaX,proto3" json:"proof_alpha_x,omitempty"` + ProofAlphaY []byte `protobuf:"bytes,3,opt,name=proof_alpha_y,json=proofAlphaY,proto3" json:"proof_alpha_y,omitempty"` + ProofT []byte `protobuf:"bytes,4,opt,name=proof_t,json=proofT,proto3" json:"proof_t,omitempty"` } -func (m *SignRound2Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound2Message.Merge(m, src) + +func (x *SignRound2Message) Reset() { + *x = SignRound2Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_signing_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound2Message) XXX_Size() int { - return xxx_messageInfo_SignRound2Message.Size(m) + +func (x *SignRound2Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound2Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound2Message.DiscardUnknown(m) + +func (*SignRound2Message) ProtoMessage() {} + +func (x *SignRound2Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_signing_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignRound2Message proto.InternalMessageInfo +// Deprecated: Use SignRound2Message.ProtoReflect.Descriptor instead. +func (*SignRound2Message) Descriptor() ([]byte, []int) { + return file_protob_eddsa_signing_proto_rawDescGZIP(), []int{1} +} -func (m *SignRound2Message) GetDeCommitment() [][]byte { - if m != nil { - return m.DeCommitment +func (x *SignRound2Message) GetDeCommitment() [][]byte { + if x != nil { + return x.DeCommitment } return nil } -func (m *SignRound2Message) GetProofAlphaX() []byte { - if m != nil { - return m.ProofAlphaX +func (x *SignRound2Message) GetProofAlphaX() []byte { + if x != nil { + return x.ProofAlphaX } return nil } -func (m *SignRound2Message) GetProofAlphaY() []byte { - if m != nil { - return m.ProofAlphaY +func (x *SignRound2Message) GetProofAlphaY() []byte { + if x != nil { + return x.ProofAlphaY } return nil } -func (m *SignRound2Message) GetProofT() []byte { - if m != nil { - return m.ProofT +func (x *SignRound2Message) GetProofT() []byte { + if x != nil { + return x.ProofT } return nil } @@ -136,66 +151,163 @@ func (m *SignRound2Message) GetProofT() []byte { // // Represents a BROADCAST message sent to all parties during Round 3 of the EDDSA TSS signing protocol. type SignRound3Message struct { - S []byte `protobuf:"bytes,1,opt,name=s,proto3" json:"s,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + S []byte `protobuf:"bytes,1,opt,name=s,proto3" json:"s,omitempty"` } -func (m *SignRound3Message) Reset() { *m = SignRound3Message{} } -func (m *SignRound3Message) String() string { return proto.CompactTextString(m) } -func (*SignRound3Message) ProtoMessage() {} -func (*SignRound3Message) Descriptor() ([]byte, []int) { - return fileDescriptor_cf83f80fc7454980, []int{2} +func (x *SignRound3Message) Reset() { + *x = SignRound3Message{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_eddsa_signing_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignRound3Message) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignRound3Message.Unmarshal(m, b) +func (x *SignRound3Message) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignRound3Message) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignRound3Message.Marshal(b, m, deterministic) + +func (*SignRound3Message) ProtoMessage() {} + +func (x *SignRound3Message) ProtoReflect() protoreflect.Message { + mi := &file_protob_eddsa_signing_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *SignRound3Message) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignRound3Message.Merge(m, src) + +// Deprecated: Use SignRound3Message.ProtoReflect.Descriptor instead. +func (*SignRound3Message) Descriptor() ([]byte, []int) { + return file_protob_eddsa_signing_proto_rawDescGZIP(), []int{2} } -func (m *SignRound3Message) XXX_Size() int { - return xxx_messageInfo_SignRound3Message.Size(m) + +func (x *SignRound3Message) GetS() []byte { + if x != nil { + return x.S + } + return nil } -func (m *SignRound3Message) XXX_DiscardUnknown() { - xxx_messageInfo_SignRound3Message.DiscardUnknown(m) + +var File_protob_eddsa_signing_proto protoreflect.FileDescriptor + +var file_protob_eddsa_signing_proto_rawDesc = []byte{ + 0x0a, 0x1a, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x65, 0x64, 0x64, 0x73, 0x61, 0x2d, 0x73, + 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1c, 0x62, 0x69, + 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x74, 0x73, 0x73, 0x6c, 0x69, 0x62, 0x2e, 0x65, 0x64, 0x64, + 0x73, 0x61, 0x2e, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x33, 0x0a, 0x11, 0x53, 0x69, + 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x99, 0x01, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, + 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, + 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, 0x68, 0x61, 0x58, 0x12, 0x22, + 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x61, 0x6c, 0x70, 0x68, 0x61, 0x5f, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x41, 0x6c, 0x70, 0x68, + 0x61, 0x59, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x54, 0x22, 0x21, 0x0a, 0x11, 0x53, + 0x69, 0x67, 0x6e, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, 0x73, 0x42, 0x0f, + 0x5a, 0x0d, 0x65, 0x64, 0x64, 0x73, 0x61, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } -var xxx_messageInfo_SignRound3Message proto.InternalMessageInfo +var ( + file_protob_eddsa_signing_proto_rawDescOnce sync.Once + file_protob_eddsa_signing_proto_rawDescData = file_protob_eddsa_signing_proto_rawDesc +) -func (m *SignRound3Message) GetS() []byte { - if m != nil { - return m.S - } - return nil +func file_protob_eddsa_signing_proto_rawDescGZIP() []byte { + file_protob_eddsa_signing_proto_rawDescOnce.Do(func() { + file_protob_eddsa_signing_proto_rawDescData = protoimpl.X.CompressGZIP(file_protob_eddsa_signing_proto_rawDescData) + }) + return file_protob_eddsa_signing_proto_rawDescData } -func init() { - proto.RegisterType((*SignRound1Message)(nil), "binance.tsslib.eddsa.signing.SignRound1Message") - proto.RegisterType((*SignRound2Message)(nil), "binance.tsslib.eddsa.signing.SignRound2Message") - proto.RegisterType((*SignRound3Message)(nil), "binance.tsslib.eddsa.signing.SignRound3Message") -} - -func init() { proto.RegisterFile("eddsa-signing.proto", fileDescriptor_cf83f80fc7454980) } - -var fileDescriptor_cf83f80fc7454980 = []byte{ - // 219 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x12, 0x4e, 0x4d, 0x49, 0x29, - 0x4e, 0xd4, 0x2d, 0xce, 0x4c, 0xcf, 0xcb, 0xcc, 0x4b, 0xd7, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, - 0x92, 0x49, 0xca, 0xcc, 0x4b, 0xcc, 0x4b, 0x4e, 0xd5, 0x2b, 0x29, 0x2e, 0xce, 0xc9, 0x4c, 0xd2, - 0x03, 0xab, 0xd1, 0x83, 0xaa, 0x51, 0x32, 0xe6, 0x12, 0x0c, 0xce, 0x4c, 0xcf, 0x0b, 0xca, 0x2f, - 0xcd, 0x4b, 0x31, 0xf4, 0x4d, 0x2d, 0x2e, 0x4e, 0x4c, 0x4f, 0x15, 0x92, 0xe3, 0xe2, 0x4a, 0xce, - 0xcf, 0xcd, 0xcd, 0x2c, 0xc9, 0x4d, 0xcd, 0x2b, 0x91, 0x60, 0x54, 0x60, 0xd4, 0xe0, 0x09, 0x42, - 0x12, 0x51, 0x9a, 0xc9, 0x88, 0xa4, 0xcb, 0x08, 0xa6, 0x4b, 0x99, 0x8b, 0x37, 0x25, 0x35, 0x1e, - 0x45, 0x23, 0xb3, 0x06, 0x4f, 0x10, 0x4f, 0x4a, 0xaa, 0x33, 0x5c, 0x4c, 0x48, 0x89, 0x8b, 0xb7, - 0xa0, 0x28, 0x3f, 0x3f, 0x2d, 0x3e, 0x31, 0xa7, 0x20, 0x23, 0x31, 0xbe, 0x42, 0x82, 0x09, 0x6c, - 0x3a, 0x37, 0x58, 0xd0, 0x11, 0x24, 0x16, 0x81, 0xae, 0xa6, 0x52, 0x82, 0x19, 0x5d, 0x4d, 0xa4, - 0x90, 0x38, 0x17, 0x3b, 0x44, 0x4d, 0x89, 0x04, 0x0b, 0x58, 0x96, 0x0d, 0xcc, 0x0d, 0x51, 0x52, - 0x44, 0x72, 0x9a, 0x31, 0xcc, 0x69, 0x3c, 0x5c, 0x8c, 0xc5, 0x50, 0x7f, 0x30, 0x16, 0x3b, 0xf1, - 0x47, 0xf1, 0x82, 0x03, 0x41, 0x1f, 0x1a, 0x08, 0x49, 0x6c, 0xe0, 0x90, 0x32, 0x06, 0x04, 0x00, - 0x00, 0xff, 0xff, 0x26, 0xfd, 0x9b, 0xd6, 0x40, 0x01, 0x00, 0x00, +var file_protob_eddsa_signing_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_protob_eddsa_signing_proto_goTypes = []interface{}{ + (*SignRound1Message)(nil), // 0: binance.tsslib.eddsa.signing.SignRound1Message + (*SignRound2Message)(nil), // 1: binance.tsslib.eddsa.signing.SignRound2Message + (*SignRound3Message)(nil), // 2: binance.tsslib.eddsa.signing.SignRound3Message +} +var file_protob_eddsa_signing_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_protob_eddsa_signing_proto_init() } +func file_protob_eddsa_signing_proto_init() { + if File_protob_eddsa_signing_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protob_eddsa_signing_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound1Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_signing_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound2Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_eddsa_signing_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignRound3Message); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protob_eddsa_signing_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protob_eddsa_signing_proto_goTypes, + DependencyIndexes: file_protob_eddsa_signing_proto_depIdxs, + MessageInfos: file_protob_eddsa_signing_proto_msgTypes, + }.Build() + File_protob_eddsa_signing_proto = out.File + file_protob_eddsa_signing_proto_rawDesc = nil + file_protob_eddsa_signing_proto_goTypes = nil + file_protob_eddsa_signing_proto_depIdxs = nil } diff --git a/tss/message.pb.go b/tss/message.pb.go index 01ee24b9..df58ef38 100644 --- a/tss/message.pb.go +++ b/tss/message.pb.go @@ -1,42 +1,45 @@ -// Copyright © 2019-2020 Binance +// Copyright © 2019 Binance // // This file is part of Binance. The full Binance copyright notice, including // terms governing use, modification, and redistribution, is contained in the // file LICENSE at the root of the source code distribution tree. // Code generated by protoc-gen-go. DO NOT EDIT. -// source: message.proto +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: protob/message.proto package tss import ( - fmt "fmt" - math "math" - - proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" anypb "google.golang.org/protobuf/types/known/anypb" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // // Wrapper for TSS messages, often read by the transport layer and not itself sent over the wire type MessageWrapper struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // Metadata optionally un-marshalled and used by the transport to route this message. IsBroadcast bool `protobuf:"varint,1,opt,name=is_broadcast,json=isBroadcast,proto3" json:"is_broadcast,omitempty"` // Metadata optionally un-marshalled and used by the transport to route this message. - IsToOldCommittee bool `protobuf:"varint,2,opt,name=is_to_old_committee,json=isToOldCommittee,proto3" json:"is_to_old_committee,omitempty"` + IsToOldCommittee bool `protobuf:"varint,2,opt,name=is_to_old_committee,json=isToOldCommittee,proto3" json:"is_to_old_committee,omitempty"` // used only in certain resharing messages // Metadata optionally un-marshalled and used by the transport to route this message. - IsToOldAndNewCommittees bool `protobuf:"varint,5,opt,name=is_to_old_and_new_committees,json=isToOldAndNewCommittees,proto3" json:"is_to_old_and_new_committees,omitempty"` + IsToOldAndNewCommittees bool `protobuf:"varint,5,opt,name=is_to_old_and_new_committees,json=isToOldAndNewCommittees,proto3" json:"is_to_old_and_new_committees,omitempty"` // used only in certain resharing messages // Metadata optionally un-marshalled and used by the transport to route this message. From *MessageWrapper_PartyID `protobuf:"bytes,3,opt,name=from,proto3" json:"from,omitempty"` // Metadata optionally un-marshalled and used by the transport to route this message. @@ -44,75 +47,79 @@ type MessageWrapper struct { // This field is actually what is sent through the wire and consumed on the other end by UpdateFromBytes. // An Any contains an arbitrary serialized message as bytes, along with a URL that // acts as a globally unique identifier for and resolves to that message's type. - Message *anypb.Any `protobuf:"bytes,10,opt,name=message,proto3" json:"message,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Message *anypb.Any `protobuf:"bytes,10,opt,name=message,proto3" json:"message,omitempty"` } -func (m *MessageWrapper) Reset() { *m = MessageWrapper{} } -func (m *MessageWrapper) String() string { return proto.CompactTextString(m) } -func (*MessageWrapper) ProtoMessage() {} -func (*MessageWrapper) Descriptor() ([]byte, []int) { - return fileDescriptor_33c57e4bae7b9afd, []int{0} +func (x *MessageWrapper) Reset() { + *x = MessageWrapper{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_message_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *MessageWrapper) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MessageWrapper.Unmarshal(m, b) -} -func (m *MessageWrapper) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MessageWrapper.Marshal(b, m, deterministic) -} -func (m *MessageWrapper) XXX_Merge(src proto.Message) { - xxx_messageInfo_MessageWrapper.Merge(m, src) +func (x *MessageWrapper) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *MessageWrapper) XXX_Size() int { - return xxx_messageInfo_MessageWrapper.Size(m) -} -func (m *MessageWrapper) XXX_DiscardUnknown() { - xxx_messageInfo_MessageWrapper.DiscardUnknown(m) + +func (*MessageWrapper) ProtoMessage() {} + +func (x *MessageWrapper) ProtoReflect() protoreflect.Message { + mi := &file_protob_message_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_MessageWrapper proto.InternalMessageInfo +// Deprecated: Use MessageWrapper.ProtoReflect.Descriptor instead. +func (*MessageWrapper) Descriptor() ([]byte, []int) { + return file_protob_message_proto_rawDescGZIP(), []int{0} +} -func (m *MessageWrapper) GetIsBroadcast() bool { - if m != nil { - return m.IsBroadcast +func (x *MessageWrapper) GetIsBroadcast() bool { + if x != nil { + return x.IsBroadcast } return false } -func (m *MessageWrapper) GetIsToOldCommittee() bool { - if m != nil { - return m.IsToOldCommittee +func (x *MessageWrapper) GetIsToOldCommittee() bool { + if x != nil { + return x.IsToOldCommittee } return false } -func (m *MessageWrapper) GetIsToOldAndNewCommittees() bool { - if m != nil { - return m.IsToOldAndNewCommittees +func (x *MessageWrapper) GetIsToOldAndNewCommittees() bool { + if x != nil { + return x.IsToOldAndNewCommittees } return false } -func (m *MessageWrapper) GetFrom() *MessageWrapper_PartyID { - if m != nil { - return m.From +func (x *MessageWrapper) GetFrom() *MessageWrapper_PartyID { + if x != nil { + return x.From } return nil } -func (m *MessageWrapper) GetTo() []*MessageWrapper_PartyID { - if m != nil { - return m.To +func (x *MessageWrapper) GetTo() []*MessageWrapper_PartyID { + if x != nil { + return x.To } return nil } -func (m *MessageWrapper) GetMessage() *anypb.Any { - if m != nil { - return m.Message +func (x *MessageWrapper) GetMessage() *anypb.Any { + if x != nil { + return x.Message } return nil } @@ -121,87 +128,180 @@ func (m *MessageWrapper) GetMessage() *anypb.Any { // Note: The `id` and `moniker` are provided for convenience to allow you to track participants easier. // The `id` is intended to be a unique string representation of `key` and `moniker` can be anything (even left blank). type MessageWrapper_PartyID struct { - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Moniker string `protobuf:"bytes,2,opt,name=moniker,proto3" json:"moniker,omitempty"` - Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *MessageWrapper_PartyID) Reset() { *m = MessageWrapper_PartyID{} } -func (m *MessageWrapper_PartyID) String() string { return proto.CompactTextString(m) } -func (*MessageWrapper_PartyID) ProtoMessage() {} -func (*MessageWrapper_PartyID) Descriptor() ([]byte, []int) { - return fileDescriptor_33c57e4bae7b9afd, []int{0, 0} + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Moniker string `protobuf:"bytes,2,opt,name=moniker,proto3" json:"moniker,omitempty"` + Key []byte `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"` } -func (m *MessageWrapper_PartyID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MessageWrapper_PartyID.Unmarshal(m, b) -} -func (m *MessageWrapper_PartyID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MessageWrapper_PartyID.Marshal(b, m, deterministic) -} -func (m *MessageWrapper_PartyID) XXX_Merge(src proto.Message) { - xxx_messageInfo_MessageWrapper_PartyID.Merge(m, src) +func (x *MessageWrapper_PartyID) Reset() { + *x = MessageWrapper_PartyID{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_message_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *MessageWrapper_PartyID) XXX_Size() int { - return xxx_messageInfo_MessageWrapper_PartyID.Size(m) + +func (x *MessageWrapper_PartyID) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *MessageWrapper_PartyID) XXX_DiscardUnknown() { - xxx_messageInfo_MessageWrapper_PartyID.DiscardUnknown(m) + +func (*MessageWrapper_PartyID) ProtoMessage() {} + +func (x *MessageWrapper_PartyID) ProtoReflect() protoreflect.Message { + mi := &file_protob_message_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_MessageWrapper_PartyID proto.InternalMessageInfo +// Deprecated: Use MessageWrapper_PartyID.ProtoReflect.Descriptor instead. +func (*MessageWrapper_PartyID) Descriptor() ([]byte, []int) { + return file_protob_message_proto_rawDescGZIP(), []int{0, 0} +} -func (m *MessageWrapper_PartyID) GetId() string { - if m != nil { - return m.Id +func (x *MessageWrapper_PartyID) GetId() string { + if x != nil { + return x.Id } return "" } -func (m *MessageWrapper_PartyID) GetMoniker() string { - if m != nil { - return m.Moniker +func (x *MessageWrapper_PartyID) GetMoniker() string { + if x != nil { + return x.Moniker } return "" } -func (m *MessageWrapper_PartyID) GetKey() []byte { - if m != nil { - return m.Key +func (x *MessageWrapper_PartyID) GetKey() []byte { + if x != nil { + return x.Key } return nil } -func init() { - proto.RegisterType((*MessageWrapper)(nil), "binance.tsslib.MessageWrapper") - proto.RegisterType((*MessageWrapper_PartyID)(nil), "binance.tsslib.MessageWrapper.PartyID") -} - -func init() { proto.RegisterFile("message.proto", fileDescriptor_33c57e4bae7b9afd) } - -var fileDescriptor_33c57e4bae7b9afd = []byte{ - // 312 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x90, 0x4d, 0x4b, 0x2b, 0x31, - 0x14, 0x86, 0xe9, 0x4c, 0x7b, 0xe7, 0xf6, 0xb4, 0xb7, 0x94, 0x5c, 0xc1, 0x58, 0x5c, 0x54, 0x17, - 0xd2, 0x8d, 0x29, 0x28, 0xb8, 0x10, 0x5c, 0xb4, 0xea, 0xc2, 0x85, 0x1f, 0x0c, 0x82, 0xe0, 0x66, - 0xc8, 0x34, 0x69, 0x09, 0x9d, 0xc9, 0x29, 0x39, 0x91, 0x32, 0xff, 0xc1, 0x1f, 0x2d, 0xa6, 0x1d, - 0x4b, 0x97, 0xee, 0x92, 0x93, 0xf7, 0xe1, 0xe4, 0x7d, 0xe0, 0x5f, 0xa9, 0x89, 0xe4, 0x42, 0x8b, - 0x95, 0x43, 0x8f, 0xac, 0x97, 0x1b, 0x2b, 0xed, 0x4c, 0x0b, 0x4f, 0x54, 0x98, 0x7c, 0x70, 0xb4, - 0x40, 0x5c, 0x14, 0x7a, 0x1c, 0x5e, 0xf3, 0x8f, 0xf9, 0x58, 0xda, 0x6a, 0x13, 0x3d, 0xfd, 0x8c, - 0xa1, 0xf7, 0xb8, 0x81, 0xdf, 0x9c, 0x5c, 0xad, 0xb4, 0x63, 0x27, 0xd0, 0x35, 0x94, 0xe5, 0x0e, - 0xa5, 0x9a, 0x49, 0xf2, 0xbc, 0x31, 0x6c, 0x8c, 0xfe, 0xa6, 0x1d, 0x43, 0xd3, 0x7a, 0xc4, 0xce, - 0xe1, 0xbf, 0xa1, 0xcc, 0x63, 0x86, 0x85, 0xca, 0x66, 0x58, 0x96, 0xc6, 0x7b, 0xad, 0x79, 0x14, - 0x92, 0x7d, 0x43, 0xaf, 0xf8, 0x5c, 0xa8, 0xdb, 0x7a, 0xce, 0x6e, 0xe0, 0x78, 0x17, 0x97, 0x56, - 0x65, 0x56, 0xaf, 0x77, 0x18, 0xf1, 0x56, 0xe0, 0x0e, 0xb7, 0xdc, 0xc4, 0xaa, 0x27, 0xbd, 0xfe, - 0xa1, 0x89, 0x5d, 0x43, 0x73, 0xee, 0xb0, 0xe4, 0xf1, 0xb0, 0x31, 0xea, 0x5c, 0x9c, 0x89, 0xfd, - 0x76, 0x62, 0xff, 0xfb, 0xe2, 0x45, 0x3a, 0x5f, 0x3d, 0xdc, 0xa5, 0x81, 0x61, 0x57, 0x10, 0x79, - 0xe4, 0xcd, 0x61, 0xfc, 0x0b, 0x32, 0xf2, 0xc8, 0x04, 0x24, 0x5b, 0xa7, 0x1c, 0xc2, 0xda, 0x03, - 0xb1, 0x91, 0x28, 0x6a, 0x89, 0x62, 0x62, 0xab, 0xb4, 0x0e, 0x0d, 0xee, 0x21, 0xd9, 0xe2, 0xac, - 0x07, 0x91, 0x51, 0xc1, 0x5a, 0x3b, 0x8d, 0x8c, 0x62, 0x1c, 0x92, 0x12, 0xad, 0x59, 0x6a, 0x17, - 0x04, 0xb5, 0xd3, 0xfa, 0xca, 0xfa, 0x10, 0x2f, 0x75, 0x15, 0x7a, 0x75, 0xd3, 0xef, 0xe3, 0x34, - 0x79, 0x6f, 0x89, 0xb1, 0x27, 0xca, 0xff, 0x84, 0x35, 0x97, 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, - 0x38, 0xe7, 0xf6, 0x88, 0xda, 0x01, 0x00, 0x00, +var File_protob_message_proto protoreflect.FileDescriptor + +var file_protob_message_proto_rawDesc = []byte{ + 0x0a, 0x14, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x62, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, + 0x74, 0x73, 0x73, 0x6c, 0x69, 0x62, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x61, 0x6e, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x8c, 0x03, 0x0a, 0x0e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x57, 0x72, 0x61, + 0x70, 0x70, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x73, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x69, 0x73, 0x42, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x13, 0x69, 0x73, 0x5f, 0x74, 0x6f, + 0x5f, 0x6f, 0x6c, 0x64, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x69, 0x73, 0x54, 0x6f, 0x4f, 0x6c, 0x64, 0x43, 0x6f, 0x6d, + 0x6d, 0x69, 0x74, 0x74, 0x65, 0x65, 0x12, 0x3d, 0x0a, 0x1c, 0x69, 0x73, 0x5f, 0x74, 0x6f, 0x5f, + 0x6f, 0x6c, 0x64, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, + 0x69, 0x74, 0x74, 0x65, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x17, 0x69, 0x73, + 0x54, 0x6f, 0x4f, 0x6c, 0x64, 0x41, 0x6e, 0x64, 0x4e, 0x65, 0x77, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x74, 0x65, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x62, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x74, 0x73, + 0x73, 0x6c, 0x69, 0x62, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x57, 0x72, 0x61, 0x70, + 0x70, 0x65, 0x72, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x79, 0x49, 0x44, 0x52, 0x04, 0x66, 0x72, 0x6f, + 0x6d, 0x12, 0x36, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x62, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x74, 0x73, 0x73, 0x6c, 0x69, 0x62, 0x2e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x57, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x2e, 0x50, 0x61, + 0x72, 0x74, 0x79, 0x49, 0x44, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x2e, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x41, 0x6e, 0x79, + 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0x45, 0x0a, 0x07, 0x50, 0x61, 0x72, + 0x74, 0x79, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x6e, 0x69, 0x6b, 0x65, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x2f, 0x74, 0x73, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_protob_message_proto_rawDescOnce sync.Once + file_protob_message_proto_rawDescData = file_protob_message_proto_rawDesc +) + +func file_protob_message_proto_rawDescGZIP() []byte { + file_protob_message_proto_rawDescOnce.Do(func() { + file_protob_message_proto_rawDescData = protoimpl.X.CompressGZIP(file_protob_message_proto_rawDescData) + }) + return file_protob_message_proto_rawDescData +} + +var file_protob_message_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_protob_message_proto_goTypes = []interface{}{ + (*MessageWrapper)(nil), // 0: binance.tsslib.MessageWrapper + (*MessageWrapper_PartyID)(nil), // 1: binance.tsslib.MessageWrapper.PartyID + (*anypb.Any)(nil), // 2: google.protobuf.Any +} +var file_protob_message_proto_depIdxs = []int32{ + 1, // 0: binance.tsslib.MessageWrapper.from:type_name -> binance.tsslib.MessageWrapper.PartyID + 1, // 1: binance.tsslib.MessageWrapper.to:type_name -> binance.tsslib.MessageWrapper.PartyID + 2, // 2: binance.tsslib.MessageWrapper.message:type_name -> google.protobuf.Any + 3, // [3:3] is the sub-list for method output_type + 3, // [3:3] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_protob_message_proto_init() } +func file_protob_message_proto_init() { + if File_protob_message_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protob_message_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageWrapper); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_message_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MessageWrapper_PartyID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protob_message_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protob_message_proto_goTypes, + DependencyIndexes: file_protob_message_proto_depIdxs, + MessageInfos: file_protob_message_proto_msgTypes, + }.Build() + File_protob_message_proto = out.File + file_protob_message_proto_rawDesc = nil + file_protob_message_proto_goTypes = nil + file_protob_message_proto_depIdxs = nil } From 7bba0171e6969e46c52850c2c6aebfbc3a0b78de Mon Sep 17 00:00:00 2001 From: Plamen Hristov Date: Thu, 9 Sep 2021 11:20:23 +0300 Subject: [PATCH 18/50] Fixed bad message naming. --- ecdsa/resharing/ecdsa-resharing.pb.go | 20 ++++++++++---------- ecdsa/resharing/local_party.go | 4 ++-- ecdsa/resharing/messages.go | 6 +++--- ecdsa/resharing/round_2_new_step_1.go | 2 +- eddsa/resharing/local_party.go | 4 ++-- eddsa/resharing/messages.go | 6 +++--- eddsa/resharing/round_2_new_step_1.go | 2 +- go.mod | 1 + go.sum | 2 ++ 9 files changed, 25 insertions(+), 22 deletions(-) diff --git a/ecdsa/resharing/ecdsa-resharing.pb.go b/ecdsa/resharing/ecdsa-resharing.pb.go index fed8d83b..3395bde1 100644 --- a/ecdsa/resharing/ecdsa-resharing.pb.go +++ b/ecdsa/resharing/ecdsa-resharing.pb.go @@ -190,14 +190,14 @@ func (x *DGRound2Message1) GetDlnproof_2() [][]byte { // // The Round 2 "ACK" is broadcast to peers of the Old Committee in this message. -type DGRound2Message2 struct { +type DGRound2Message struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *DGRound2Message2) Reset() { - *x = DGRound2Message2{} +func (x *DGRound2Message) Reset() { + *x = DGRound2Message{} if protoimpl.UnsafeEnabled { mi := &file_protob_ecdsa_resharing_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -205,13 +205,13 @@ func (x *DGRound2Message2) Reset() { } } -func (x *DGRound2Message2) String() string { +func (x *DGRound2Message) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DGRound2Message2) ProtoMessage() {} +func (*DGRound2Message) ProtoMessage() {} -func (x *DGRound2Message2) ProtoReflect() protoreflect.Message { +func (x *DGRound2Message) ProtoReflect() protoreflect.Message { mi := &file_protob_ecdsa_resharing_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -223,8 +223,8 @@ func (x *DGRound2Message2) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DGRound2Message2.ProtoReflect.Descriptor instead. -func (*DGRound2Message2) Descriptor() ([]byte, []int) { +// Deprecated: Use DGRound2Message.ProtoReflect.Descriptor instead. +func (*DGRound2Message) Descriptor() ([]byte, []int) { return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{2} } @@ -422,7 +422,7 @@ var file_protob_ecdsa_resharing_proto_msgTypes = make([]protoimpl.MessageInfo, 6 var file_protob_ecdsa_resharing_proto_goTypes = []interface{}{ (*DGRound1Message)(nil), // 0: binance.tsslib.ecdsa.resharing.DGRound1Message (*DGRound2Message1)(nil), // 1: binance.tsslib.ecdsa.resharing.DGRound2Message1 - (*DGRound2Message2)(nil), // 2: binance.tsslib.ecdsa.resharing.DGRound2Message2 + (*DGRound2Message)(nil), // 2: binance.tsslib.ecdsa.resharing.DGRound2Message (*DGRound3Message1)(nil), // 3: binance.tsslib.ecdsa.resharing.DGRound3Message1 (*DGRound3Message2)(nil), // 4: binance.tsslib.ecdsa.resharing.DGRound3Message2 (*DGRound4Message)(nil), // 5: binance.tsslib.ecdsa.resharing.DGRound4Message @@ -466,7 +466,7 @@ func file_protob_ecdsa_resharing_proto_init() { } } file_protob_ecdsa_resharing_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DGRound2Message2); i { + switch v := v.(*DGRound2Message); i { case 0: return &v.state case 1: diff --git a/ecdsa/resharing/local_party.go b/ecdsa/resharing/local_party.go index 3b6ddaf0..d0056ee6 100644 --- a/ecdsa/resharing/local_party.go +++ b/ecdsa/resharing/local_party.go @@ -125,7 +125,7 @@ func (p *LocalParty) ValidateMessage(msg tss.ParsedMessage) (bool, *tss.Error) { // check that the message's "from index" will fit into the array var maxFromIdx int switch msg.Content().(type) { - case *DGRound2Message1, *DGRound2Message2, *DGRound4Message: + case *DGRound2Message1, *DGRound2Message, *DGRound4Message: maxFromIdx = len(p.params.NewParties().IDs()) - 1 default: maxFromIdx = len(p.params.OldParties().IDs()) - 1 @@ -151,7 +151,7 @@ func (p *LocalParty) StoreMessage(msg tss.ParsedMessage) (bool, *tss.Error) { p.temp.dgRound1Messages[fromPIdx] = msg case *DGRound2Message1: p.temp.dgRound2Message1s[fromPIdx] = msg - case *DGRound2Message2: + case *DGRound2Message: p.temp.dgRound2Message2s[fromPIdx] = msg case *DGRound3Message1: p.temp.dgRound3Message1s[fromPIdx] = msg diff --git a/ecdsa/resharing/messages.go b/ecdsa/resharing/messages.go index c8f573a6..0ed6dba7 100644 --- a/ecdsa/resharing/messages.go +++ b/ecdsa/resharing/messages.go @@ -26,7 +26,7 @@ var ( _ = []tss.MessageContent{ (*DGRound1Message)(nil), (*DGRound2Message1)(nil), - (*DGRound2Message2)(nil), + (*DGRound2Message)(nil), (*DGRound3Message1)(nil), (*DGRound3Message2)(nil), } @@ -168,12 +168,12 @@ func NewDGRound2Message2( IsBroadcast: true, IsToOldCommittee: true, } - content := &DGRound2Message2{} + content := &DGRound2Message{} msg := tss.NewMessageWrapper(meta, content) return tss.NewMessage(meta, content, msg) } -func (m *DGRound2Message2) ValidateBasic() bool { +func (m *DGRound2Message) ValidateBasic() bool { return true } diff --git a/ecdsa/resharing/round_2_new_step_1.go b/ecdsa/resharing/round_2_new_step_1.go index 3f1337be..1fe955d6 100644 --- a/ecdsa/resharing/round_2_new_step_1.go +++ b/ecdsa/resharing/round_2_new_step_1.go @@ -96,7 +96,7 @@ func (round *round2) CanAccept(msg tss.ParsedMessage) bool { } } if round.ReSharingParams().IsOldCommittee() { - if _, ok := msg.Content().(*DGRound2Message2); ok { + if _, ok := msg.Content().(*DGRound2Message); ok { return msg.IsBroadcast() } } diff --git a/eddsa/resharing/local_party.go b/eddsa/resharing/local_party.go index 3960a04f..2b7b7469 100644 --- a/eddsa/resharing/local_party.go +++ b/eddsa/resharing/local_party.go @@ -120,7 +120,7 @@ func (p *LocalParty) ValidateMessage(msg tss.ParsedMessage) (bool, *tss.Error) { // check that the message's "from index" will fit into the array var maxFromIdx int switch msg.Content().(type) { - case *DGRound2Message2, *DGRound4Message: + case *DGRound2Message, *DGRound4Message: maxFromIdx = len(p.params.NewParties().IDs()) - 1 default: maxFromIdx = len(p.params.OldParties().IDs()) - 1 @@ -144,7 +144,7 @@ func (p *LocalParty) StoreMessage(msg tss.ParsedMessage) (bool, *tss.Error) { switch msg.Content().(type) { case *DGRound1Message: p.temp.dgRound1Messages[fromPIdx] = msg - case *DGRound2Message2: + case *DGRound2Message: p.temp.dgRound2Messages[fromPIdx] = msg case *DGRound3Message1: p.temp.dgRound3Message1s[fromPIdx] = msg diff --git a/eddsa/resharing/messages.go b/eddsa/resharing/messages.go index 8e76a1fc..80cb32d7 100644 --- a/eddsa/resharing/messages.go +++ b/eddsa/resharing/messages.go @@ -23,7 +23,7 @@ var ( // Ensure that signing messages implement ValidateBasic _ = []tss.MessageContent{ (*DGRound1Message)(nil), - (*DGRound2Message2)(nil), + (*DGRound2Message)(nil), (*DGRound3Message1)(nil), (*DGRound3Message2)(nil), (*DGRound4Message)(nil), @@ -83,12 +83,12 @@ func NewDGRound2Message( IsBroadcast: true, IsToOldCommittee: true, } - content := &DGRound2Message2{} + content := &DGRound2Message{} msg := tss.NewMessageWrapper(meta, content) return tss.NewMessage(meta, content, msg) } -func (m *DGRound2Message2) ValidateBasic() bool { +func (m *DGRound2Message) ValidateBasic() bool { return true } diff --git a/eddsa/resharing/round_2_new_step_1.go b/eddsa/resharing/round_2_new_step_1.go index d9117d09..c323bfb0 100644 --- a/eddsa/resharing/round_2_new_step_1.go +++ b/eddsa/resharing/round_2_new_step_1.go @@ -38,7 +38,7 @@ func (round *round2) Start() *tss.Error { } func (round *round2) CanAccept(msg tss.ParsedMessage) bool { - if _, ok := msg.Content().(*DGRound2Message2); ok { + if _, ok := msg.Content().(*DGRound2Message); ok { return msg.IsBroadcast() } return false diff --git a/go.mod b/go.mod index f4bdf8e1..cde7fd5e 100644 --- a/go.mod +++ b/go.mod @@ -7,6 +7,7 @@ require ( github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8 github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0 + github.com/golang/protobuf v1.5.0 github.com/hashicorp/go-multierror v1.0.0 github.com/ipfs/go-log v0.0.1 github.com/mattn/go-colorable v0.1.2 // indirect diff --git a/go.sum b/go.sum index 08a02d17..d68fe4ac 100644 --- a/go.sum +++ b/go.sum @@ -52,6 +52,7 @@ github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsq github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= github.com/otiai10/mint v1.2.4/go.mod h1:d+b7n/0R3tdyUYYylALXpWQ/kTN+QobSq/4SRGBkR3M= +github.com/otiai10/primes v0.0.0-20180210170552-f6d2a1ba97c4 h1:blMAhTXF6uL1+e3eVSajjLT43Cc0U8mU1gcigbbolJM= github.com/otiai10/primes v0.0.0-20180210170552-f6d2a1ba97c4/go.mod h1:UmSP7QeU3XmAdGu5+dnrTJqjBc+IscpVZkQzk473cjM= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -68,6 +69,7 @@ golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7 h1:LepdCS8Gf/MVejFIt8lsiexZATdoGVyp5bcyS+rYoUI= golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= From 68de1bdb5019583e633b3979cbbb716d7c36368a Mon Sep 17 00:00:00 2001 From: Plamen Hristov Date: Thu, 9 Sep 2021 11:29:49 +0300 Subject: [PATCH 19/50] Last message name fix. --- ecdsa/resharing/ecdsa-resharing.pb.go | 20 ++++++++++---------- ecdsa/resharing/local_party.go | 4 ++-- ecdsa/resharing/messages.go | 6 +++--- ecdsa/resharing/round_2_new_step_1.go | 2 +- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/ecdsa/resharing/ecdsa-resharing.pb.go b/ecdsa/resharing/ecdsa-resharing.pb.go index 3395bde1..fed8d83b 100644 --- a/ecdsa/resharing/ecdsa-resharing.pb.go +++ b/ecdsa/resharing/ecdsa-resharing.pb.go @@ -190,14 +190,14 @@ func (x *DGRound2Message1) GetDlnproof_2() [][]byte { // // The Round 2 "ACK" is broadcast to peers of the Old Committee in this message. -type DGRound2Message struct { +type DGRound2Message2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *DGRound2Message) Reset() { - *x = DGRound2Message{} +func (x *DGRound2Message2) Reset() { + *x = DGRound2Message2{} if protoimpl.UnsafeEnabled { mi := &file_protob_ecdsa_resharing_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -205,13 +205,13 @@ func (x *DGRound2Message) Reset() { } } -func (x *DGRound2Message) String() string { +func (x *DGRound2Message2) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DGRound2Message) ProtoMessage() {} +func (*DGRound2Message2) ProtoMessage() {} -func (x *DGRound2Message) ProtoReflect() protoreflect.Message { +func (x *DGRound2Message2) ProtoReflect() protoreflect.Message { mi := &file_protob_ecdsa_resharing_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -223,8 +223,8 @@ func (x *DGRound2Message) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DGRound2Message.ProtoReflect.Descriptor instead. -func (*DGRound2Message) Descriptor() ([]byte, []int) { +// Deprecated: Use DGRound2Message2.ProtoReflect.Descriptor instead. +func (*DGRound2Message2) Descriptor() ([]byte, []int) { return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{2} } @@ -422,7 +422,7 @@ var file_protob_ecdsa_resharing_proto_msgTypes = make([]protoimpl.MessageInfo, 6 var file_protob_ecdsa_resharing_proto_goTypes = []interface{}{ (*DGRound1Message)(nil), // 0: binance.tsslib.ecdsa.resharing.DGRound1Message (*DGRound2Message1)(nil), // 1: binance.tsslib.ecdsa.resharing.DGRound2Message1 - (*DGRound2Message)(nil), // 2: binance.tsslib.ecdsa.resharing.DGRound2Message + (*DGRound2Message2)(nil), // 2: binance.tsslib.ecdsa.resharing.DGRound2Message2 (*DGRound3Message1)(nil), // 3: binance.tsslib.ecdsa.resharing.DGRound3Message1 (*DGRound3Message2)(nil), // 4: binance.tsslib.ecdsa.resharing.DGRound3Message2 (*DGRound4Message)(nil), // 5: binance.tsslib.ecdsa.resharing.DGRound4Message @@ -466,7 +466,7 @@ func file_protob_ecdsa_resharing_proto_init() { } } file_protob_ecdsa_resharing_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DGRound2Message); i { + switch v := v.(*DGRound2Message2); i { case 0: return &v.state case 1: diff --git a/ecdsa/resharing/local_party.go b/ecdsa/resharing/local_party.go index d0056ee6..3b6ddaf0 100644 --- a/ecdsa/resharing/local_party.go +++ b/ecdsa/resharing/local_party.go @@ -125,7 +125,7 @@ func (p *LocalParty) ValidateMessage(msg tss.ParsedMessage) (bool, *tss.Error) { // check that the message's "from index" will fit into the array var maxFromIdx int switch msg.Content().(type) { - case *DGRound2Message1, *DGRound2Message, *DGRound4Message: + case *DGRound2Message1, *DGRound2Message2, *DGRound4Message: maxFromIdx = len(p.params.NewParties().IDs()) - 1 default: maxFromIdx = len(p.params.OldParties().IDs()) - 1 @@ -151,7 +151,7 @@ func (p *LocalParty) StoreMessage(msg tss.ParsedMessage) (bool, *tss.Error) { p.temp.dgRound1Messages[fromPIdx] = msg case *DGRound2Message1: p.temp.dgRound2Message1s[fromPIdx] = msg - case *DGRound2Message: + case *DGRound2Message2: p.temp.dgRound2Message2s[fromPIdx] = msg case *DGRound3Message1: p.temp.dgRound3Message1s[fromPIdx] = msg diff --git a/ecdsa/resharing/messages.go b/ecdsa/resharing/messages.go index 0ed6dba7..c8f573a6 100644 --- a/ecdsa/resharing/messages.go +++ b/ecdsa/resharing/messages.go @@ -26,7 +26,7 @@ var ( _ = []tss.MessageContent{ (*DGRound1Message)(nil), (*DGRound2Message1)(nil), - (*DGRound2Message)(nil), + (*DGRound2Message2)(nil), (*DGRound3Message1)(nil), (*DGRound3Message2)(nil), } @@ -168,12 +168,12 @@ func NewDGRound2Message2( IsBroadcast: true, IsToOldCommittee: true, } - content := &DGRound2Message{} + content := &DGRound2Message2{} msg := tss.NewMessageWrapper(meta, content) return tss.NewMessage(meta, content, msg) } -func (m *DGRound2Message) ValidateBasic() bool { +func (m *DGRound2Message2) ValidateBasic() bool { return true } diff --git a/ecdsa/resharing/round_2_new_step_1.go b/ecdsa/resharing/round_2_new_step_1.go index 1fe955d6..3f1337be 100644 --- a/ecdsa/resharing/round_2_new_step_1.go +++ b/ecdsa/resharing/round_2_new_step_1.go @@ -96,7 +96,7 @@ func (round *round2) CanAccept(msg tss.ParsedMessage) bool { } } if round.ReSharingParams().IsOldCommittee() { - if _, ok := msg.Content().(*DGRound2Message); ok { + if _, ok := msg.Content().(*DGRound2Message2); ok { return msg.IsBroadcast() } } From dc233a929410f1ec37be5ba7bf3191da2c1724e3 Mon Sep 17 00:00:00 2001 From: Plamen Hristov Date: Fri, 10 Sep 2021 11:53:36 +0300 Subject: [PATCH 20/50] Fixed bad signature.proto --- common/signature.pb.go | 208 +++++++++++++++++++++++++++-------------- protob/signature.proto | 2 +- 2 files changed, 139 insertions(+), 71 deletions(-) diff --git a/common/signature.pb.go b/common/signature.pb.go index 66d437d0..f1e802ac 100644 --- a/common/signature.pb.go +++ b/common/signature.pb.go @@ -1,35 +1,38 @@ -// Copyright © 2019-2020 Binance +// Copyright © 2019 Binance // // This file is part of Binance. The full Binance copyright notice, including // terms governing use, modification, and redistribution, is contained in the // file LICENSE at the root of the source code distribution tree. // Code generated by protoc-gen-go. DO NOT EDIT. -// source: signature.proto +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.14.0 +// source: protob/signature.proto package common import ( - fmt "fmt" - math "math" - - proto "github.com/golang/protobuf/proto" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// Reference imports to suppress errors if they are not otherwise used. -var _ = proto.Marshal -var _ = fmt.Errorf -var _ = math.Inf - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the proto package it is being compiled against. -// A compilation error at this line likely means your copy of the -// proto package needs to be updated. -const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) // // Container for output signatures, mostly used for marshalling this data structure to a mobile app type SignatureData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Signature []byte `protobuf:"bytes,1,opt,name=signature,proto3" json:"signature,omitempty"` // Ethereum-style recovery byte; only the first byte is relevant SignatureRecovery []byte `protobuf:"bytes,2,opt,name=signature_recovery,json=signatureRecovery,proto3" json:"signature_recovery,omitempty"` @@ -37,88 +40,153 @@ type SignatureData struct { R []byte `protobuf:"bytes,3,opt,name=r,proto3" json:"r,omitempty"` S []byte `protobuf:"bytes,4,opt,name=s,proto3" json:"s,omitempty"` // M represents the original message digest that was signed M - M []byte `protobuf:"bytes,5,opt,name=m,proto3" json:"m,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + M []byte `protobuf:"bytes,5,opt,name=m,proto3" json:"m,omitempty"` } -func (m *SignatureData) Reset() { *m = SignatureData{} } -func (m *SignatureData) String() string { return proto.CompactTextString(m) } -func (*SignatureData) ProtoMessage() {} -func (*SignatureData) Descriptor() ([]byte, []int) { - return fileDescriptor_76962cacebaec211, []int{0} +func (x *SignatureData) Reset() { + *x = SignatureData{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_signature_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SignatureData) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SignatureData.Unmarshal(m, b) +func (x *SignatureData) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SignatureData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SignatureData.Marshal(b, m, deterministic) -} -func (m *SignatureData) XXX_Merge(src proto.Message) { - xxx_messageInfo_SignatureData.Merge(m, src) -} -func (m *SignatureData) XXX_Size() int { - return xxx_messageInfo_SignatureData.Size(m) -} -func (m *SignatureData) XXX_DiscardUnknown() { - xxx_messageInfo_SignatureData.DiscardUnknown(m) + +func (*SignatureData) ProtoMessage() {} + +func (x *SignatureData) ProtoReflect() protoreflect.Message { + mi := &file_protob_signature_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SignatureData proto.InternalMessageInfo +// Deprecated: Use SignatureData.ProtoReflect.Descriptor instead. +func (*SignatureData) Descriptor() ([]byte, []int) { + return file_protob_signature_proto_rawDescGZIP(), []int{0} +} -func (m *SignatureData) GetSignature() []byte { - if m != nil { - return m.Signature +func (x *SignatureData) GetSignature() []byte { + if x != nil { + return x.Signature } return nil } -func (m *SignatureData) GetSignatureRecovery() []byte { - if m != nil { - return m.SignatureRecovery +func (x *SignatureData) GetSignatureRecovery() []byte { + if x != nil { + return x.SignatureRecovery } return nil } -func (m *SignatureData) GetR() []byte { - if m != nil { - return m.R +func (x *SignatureData) GetR() []byte { + if x != nil { + return x.R } return nil } -func (m *SignatureData) GetS() []byte { - if m != nil { - return m.S +func (x *SignatureData) GetS() []byte { + if x != nil { + return x.S } return nil } -func (m *SignatureData) GetM() []byte { - if m != nil { - return m.M +func (x *SignatureData) GetM() []byte { + if x != nil { + return x.M } return nil } -func init() { - proto.RegisterType((*SignatureData)(nil), "binance.tsslib.SignatureData") +var File_protob_signature_proto protoreflect.FileDescriptor + +var file_protob_signature_proto_rawDesc = []byte{ + 0x0a, 0x16, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0e, 0x62, 0x69, 0x6e, 0x61, 0x6e, 0x63, + 0x65, 0x2e, 0x74, 0x73, 0x73, 0x6c, 0x69, 0x62, 0x22, 0x86, 0x01, 0x0a, 0x0d, 0x53, 0x69, 0x67, + 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x73, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x2d, 0x0a, 0x12, 0x73, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x11, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, + 0x65, 0x63, 0x6f, 0x76, 0x65, 0x72, 0x79, 0x12, 0x0c, 0x0a, 0x01, 0x72, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x01, 0x72, 0x12, 0x0c, 0x0a, 0x01, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x01, 0x73, 0x12, 0x0c, 0x0a, 0x01, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x01, + 0x6d, 0x42, 0x0a, 0x5a, 0x08, 0x2e, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_protob_signature_proto_rawDescOnce sync.Once + file_protob_signature_proto_rawDescData = file_protob_signature_proto_rawDesc +) + +func file_protob_signature_proto_rawDescGZIP() []byte { + file_protob_signature_proto_rawDescOnce.Do(func() { + file_protob_signature_proto_rawDescData = protoimpl.X.CompressGZIP(file_protob_signature_proto_rawDescData) + }) + return file_protob_signature_proto_rawDescData } -func init() { proto.RegisterFile("signature.proto", fileDescriptor_76962cacebaec211) } - -var fileDescriptor_76962cacebaec211 = []byte{ - // 150 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2f, 0xce, 0x4c, 0xcf, - 0x4b, 0x2c, 0x29, 0x2d, 0x4a, 0xd5, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x4b, 0xca, 0xcc, - 0x4b, 0xcc, 0x4b, 0x4e, 0xd5, 0x2b, 0x29, 0x2e, 0xce, 0xc9, 0x4c, 0x52, 0x6a, 0x63, 0xe4, 0xe2, - 0x0d, 0x86, 0xa9, 0x71, 0x49, 0x2c, 0x49, 0x14, 0x92, 0xe1, 0xe2, 0x84, 0x6b, 0x92, 0x60, 0x54, - 0x60, 0xd4, 0xe0, 0x09, 0x42, 0x08, 0x08, 0xe9, 0x72, 0x09, 0xc1, 0x39, 0xf1, 0x45, 0xa9, 0xc9, - 0xf9, 0x65, 0xa9, 0x45, 0x95, 0x12, 0x4c, 0x60, 0x65, 0x82, 0x70, 0x99, 0x20, 0xa8, 0x84, 0x10, - 0x0f, 0x17, 0x63, 0x91, 0x04, 0x33, 0x58, 0x96, 0xb1, 0x08, 0xc4, 0x2b, 0x96, 0x60, 0x81, 0xf0, - 0x8a, 0x41, 0xbc, 0x5c, 0x09, 0x56, 0x08, 0x2f, 0xd7, 0x89, 0x23, 0x8a, 0x2d, 0x39, 0x3f, 0x37, - 0x37, 0x3f, 0x2f, 0x89, 0x0d, 0xec, 0x52, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcf, 0xe1, - 0x86, 0xde, 0xbc, 0x00, 0x00, 0x00, +var file_protob_signature_proto_msgTypes = make([]protoimpl.MessageInfo, 1) +var file_protob_signature_proto_goTypes = []interface{}{ + (*SignatureData)(nil), // 0: binance.tsslib.SignatureData +} +var file_protob_signature_proto_depIdxs = []int32{ + 0, // [0:0] is the sub-list for method output_type + 0, // [0:0] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_protob_signature_proto_init() } +func file_protob_signature_proto_init() { + if File_protob_signature_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_protob_signature_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SignatureData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_protob_signature_proto_rawDesc, + NumEnums: 0, + NumMessages: 1, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_protob_signature_proto_goTypes, + DependencyIndexes: file_protob_signature_proto_depIdxs, + MessageInfos: file_protob_signature_proto_msgTypes, + }.Build() + File_protob_signature_proto = out.File + file_protob_signature_proto_rawDesc = nil + file_protob_signature_proto_goTypes = nil + file_protob_signature_proto_depIdxs = nil } diff --git a/protob/signature.proto b/protob/signature.proto index 2f7538f1..a7aeeaa9 100644 --- a/protob/signature.proto +++ b/protob/signature.proto @@ -7,7 +7,7 @@ syntax = "proto3"; package binance.tsslib; -option go_package = "common"; +option go_package = "./common"; /* * Container for output signatures, mostly used for marshalling this data structure to a mobile app From 427dbfb1f0a81367aabf2fc4289b333f66ae4884 Mon Sep 17 00:00:00 2001 From: ycen Date: Thu, 14 Oct 2021 21:04:01 +0800 Subject: [PATCH 21/50] Check bitslen of NTildej --- ecdsa/keygen/round_2.go | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ecdsa/keygen/round_2.go b/ecdsa/keygen/round_2.go index 7346b648..e0f0a042 100644 --- a/ecdsa/keygen/round_2.go +++ b/ecdsa/keygen/round_2.go @@ -15,6 +15,10 @@ import ( "github.com/binance-chain/tss-lib/tss" ) +const ( + paillierBitsLen = 2048 +) + func (round *round2) Start() *tss.Error { if round.started { return round.WrapError(errors.New("round already started")) @@ -39,6 +43,9 @@ func (round *round2) Start() *tss.Error { if H1j.Cmp(H2j) == 0 { return round.WrapError(errors.New("h1j and h2j were equal for this party"), msg.GetFrom()) } + if NTildej.BitLen() != paillierBitsLen { + return round.WrapError(errors.New("NTildej do not have enought bits"), msg.GetFrom()) + } h1JHex, h2JHex := hex.EncodeToString(H1j.Bytes()), hex.EncodeToString(H2j.Bytes()) if _, found := h1H2Map[h1JHex]; found { return round.WrapError(errors.New("this h1j was already used by another party"), msg.GetFrom()) @@ -47,18 +54,19 @@ func (round *round2) Start() *tss.Error { return round.WrapError(errors.New("this h2j was already used by another party"), msg.GetFrom()) } h1H2Map[h1JHex], h1H2Map[h2JHex] = struct{}{}, struct{}{} - wg.Add(2) + wg.Add(1) go func(j int, msg tss.ParsedMessage, r1msg *KGRound1Message, H1j, H2j, NTildej *big.Int) { + defer wg.Done() if dlnProof1, err := r1msg.UnmarshalDLNProof1(); err != nil || !dlnProof1.Verify(H1j, H2j, NTildej) { dlnProof1FailCulprits[j] = msg.GetFrom() } - wg.Done() }(j, msg, r1msg, H1j, H2j, NTildej) + wg.Add(1) go func(j int, msg tss.ParsedMessage, r1msg *KGRound1Message, H1j, H2j, NTildej *big.Int) { + defer wg.Done() if dlnProof2, err := r1msg.UnmarshalDLNProof2(); err != nil || !dlnProof2.Verify(H2j, H1j, NTildej) { dlnProof2FailCulprits[j] = msg.GetFrom() } - wg.Done() }(j, msg, r1msg, H1j, H2j, NTildej) } wg.Wait() From 76cfe7d55a8bff16953a7fd9c2843683096b20cc Mon Sep 17 00:00:00 2001 From: ycen Date: Thu, 14 Oct 2021 21:04:01 +0800 Subject: [PATCH 22/50] Check bitslen of received paillier key --- ecdsa/keygen/round_2.go | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/ecdsa/keygen/round_2.go b/ecdsa/keygen/round_2.go index 7346b648..74b9d73a 100644 --- a/ecdsa/keygen/round_2.go +++ b/ecdsa/keygen/round_2.go @@ -15,6 +15,10 @@ import ( "github.com/binance-chain/tss-lib/tss" ) +const ( + paillierBitsLen = 2048 +) + func (round *round2) Start() *tss.Error { if round.started { return round.WrapError(errors.New("round already started")) @@ -32,10 +36,14 @@ func (round *round2) Start() *tss.Error { wg := new(sync.WaitGroup) for j, msg := range round.temp.kgRound1Messages { r1msg := msg.Content().(*KGRound1Message) - H1j, H2j, NTildej := + H1j, H2j, NTildej, paillierPKj := r1msg.UnmarshalH1(), r1msg.UnmarshalH2(), - r1msg.UnmarshalNTilde() + r1msg.UnmarshalNTilde(), + r1msg.UnmarshalPaillierPK() + if paillierPKj.N.BitLen() != paillierBitsLen { + return round.WrapError(errors.New("got paillier modulus with not enough bits")) + } if H1j.Cmp(H2j) == 0 { return round.WrapError(errors.New("h1j and h2j were equal for this party"), msg.GetFrom()) } @@ -47,18 +55,19 @@ func (round *round2) Start() *tss.Error { return round.WrapError(errors.New("this h2j was already used by another party"), msg.GetFrom()) } h1H2Map[h1JHex], h1H2Map[h2JHex] = struct{}{}, struct{}{} - wg.Add(2) + wg.Add(1) go func(j int, msg tss.ParsedMessage, r1msg *KGRound1Message, H1j, H2j, NTildej *big.Int) { + defer wg.Done() if dlnProof1, err := r1msg.UnmarshalDLNProof1(); err != nil || !dlnProof1.Verify(H1j, H2j, NTildej) { dlnProof1FailCulprits[j] = msg.GetFrom() } - wg.Done() }(j, msg, r1msg, H1j, H2j, NTildej) + wg.Add(1) go func(j int, msg tss.ParsedMessage, r1msg *KGRound1Message, H1j, H2j, NTildej *big.Int) { + defer wg.Done() if dlnProof2, err := r1msg.UnmarshalDLNProof2(); err != nil || !dlnProof2.Verify(H2j, H1j, NTildej) { dlnProof2FailCulprits[j] = msg.GetFrom() } - wg.Done() }(j, msg, r1msg, H1j, H2j, NTildej) } wg.Wait() From 27c19868e15529e6607dd00b627170849e0c7c44 Mon Sep 17 00:00:00 2001 From: ycen Date: Mon, 18 Oct 2021 10:46:56 +0800 Subject: [PATCH 23/50] Add missing message source, and change error message --- ecdsa/keygen/round_2.go | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/ecdsa/keygen/round_2.go b/ecdsa/keygen/round_2.go index d96fc26c..d1ebaf18 100644 --- a/ecdsa/keygen/round_2.go +++ b/ecdsa/keygen/round_2.go @@ -42,13 +42,13 @@ func (round *round2) Start() *tss.Error { r1msg.UnmarshalNTilde(), r1msg.UnmarshalPaillierPK() if paillierPKj.N.BitLen() != paillierBitsLen { - return round.WrapError(errors.New("got paillier modulus with not enough bits")) + return round.WrapError(errors.New("got paillier modulus with insufficient bits for this party"), msg.GetFrom()) } if H1j.Cmp(H2j) == 0 { return round.WrapError(errors.New("h1j and h2j were equal for this party"), msg.GetFrom()) } if NTildej.BitLen() != paillierBitsLen { - return round.WrapError(errors.New("NTildej do not have enought bits"), msg.GetFrom()) + return round.WrapError(errors.New("got NTildej with insufficient bits for this party"), msg.GetFrom()) } h1JHex, h2JHex := hex.EncodeToString(H1j.Bytes()), hex.EncodeToString(H2j.Bytes()) if _, found := h1H2Map[h1JHex]; found { @@ -58,19 +58,18 @@ func (round *round2) Start() *tss.Error { return round.WrapError(errors.New("this h2j was already used by another party"), msg.GetFrom()) } h1H2Map[h1JHex], h1H2Map[h2JHex] = struct{}{}, struct{}{} - wg.Add(1) + wg.Add(2) go func(j int, msg tss.ParsedMessage, r1msg *KGRound1Message, H1j, H2j, NTildej *big.Int) { - defer wg.Done() if dlnProof1, err := r1msg.UnmarshalDLNProof1(); err != nil || !dlnProof1.Verify(H1j, H2j, NTildej) { dlnProof1FailCulprits[j] = msg.GetFrom() } + wg.Done() }(j, msg, r1msg, H1j, H2j, NTildej) - wg.Add(1) go func(j int, msg tss.ParsedMessage, r1msg *KGRound1Message, H1j, H2j, NTildej *big.Int) { - defer wg.Done() if dlnProof2, err := r1msg.UnmarshalDLNProof2(); err != nil || !dlnProof2.Verify(H2j, H1j, NTildej) { dlnProof2FailCulprits[j] = msg.GetFrom() } + wg.Done() }(j, msg, r1msg, H1j, H2j, NTildej) } wg.Wait() From 53718649138ec9e8745537d20eff122837705c64 Mon Sep 17 00:00:00 2001 From: ycen Date: Mon, 25 Oct 2021 18:18:58 +0800 Subject: [PATCH 24/50] Bugfix for vss, check shareid when construct vss --- crypto/vss/feldman_vss.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/crypto/vss/feldman_vss.go b/crypto/vss/feldman_vss.go index f556bc9b..b3c4d226 100644 --- a/crypto/vss/feldman_vss.go +++ b/crypto/vss/feldman_vss.go @@ -63,7 +63,8 @@ func Create(ec elliptic.Curve, threshold int, secret *big.Int, indexes []*big.In shares := make(Shares, num) for i := 0; i < num; i++ { - if indexes[i].Cmp(big.NewInt(0)) == 0 { + idx := new(big.Int).Mod(indexes[i], ec.Params().N) + if idx.Cmp(big.NewInt(0)) == 0 { return nil, nil, fmt.Errorf("party index should not be 0") } share := evaluatePolynomial(ec, threshold, poly, indexes[i]) From 51e8026d60752f77b77e8f6894dee9fe4cc514b9 Mon Sep 17 00:00:00 2001 From: ycen Date: Tue, 26 Oct 2021 11:11:58 +0800 Subject: [PATCH 25/50] Check duplicate of share_id in VSS --- crypto/vss/feldman_vss.go | 32 ++++++++++++++++++++++++++------ crypto/vss/feldman_vss_test.go | 27 +++++++++++++++++++++++++++ go.mod | 1 + go.sum | 4 ++++ 4 files changed, 58 insertions(+), 6 deletions(-) diff --git a/crypto/vss/feldman_vss.go b/crypto/vss/feldman_vss.go index b3c4d226..86625957 100644 --- a/crypto/vss/feldman_vss.go +++ b/crypto/vss/feldman_vss.go @@ -18,6 +18,7 @@ import ( "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" + "modernc.org/sortutil" ) type ( @@ -39,6 +40,23 @@ var ( one = big.NewInt(1) ) +// Check share ids of Shamir's Secret Sharing, return error if duplicate or 0 value found +func CheckIndexes(ec elliptic.Curve, indexes []*big.Int) ([]*big.Int, error) { + dup := make([]*big.Int, len(indexes)) + for i, v := range(indexes) { + vMod := new(big.Int).Mod(v, ec.Params().N) + if vMod.Cmp(zero) == 0 { + return nil, errors.New("party index should not be 0") + } + dup[i] = vMod + indexes[i] = vMod + } + if sortutil.Dedupe(sortutil.BigIntSlice(dup)) < len(indexes) { + return nil, errors.New("duplicate in indexes") + } + return indexes, nil +} + // Returns a new array of secret shares created by Shamir's Secret Sharing Algorithm, // requiring a minimum number of shares to recreate, of length shares, from the input secret // @@ -49,6 +67,12 @@ func Create(ec elliptic.Curve, threshold int, secret *big.Int, indexes []*big.In if threshold < 1 { return nil, nil, errors.New("vss threshold < 1") } + + ids, err := CheckIndexes(ec, indexes) + if err != nil { + return nil, nil, err + } + num := len(indexes) if num < threshold { return nil, nil, ErrNumSharesBelowThreshold @@ -63,12 +87,8 @@ func Create(ec elliptic.Curve, threshold int, secret *big.Int, indexes []*big.In shares := make(Shares, num) for i := 0; i < num; i++ { - idx := new(big.Int).Mod(indexes[i], ec.Params().N) - if idx.Cmp(big.NewInt(0)) == 0 { - return nil, nil, fmt.Errorf("party index should not be 0") - } - share := evaluatePolynomial(ec, threshold, poly, indexes[i]) - shares[i] = &Share{Threshold: threshold, ID: indexes[i], Share: share} + share := evaluatePolynomial(ec, threshold, poly, ids[i]) + shares[i] = &Share{Threshold: threshold, ID: ids[i], Share: share} } return v, shares, nil } diff --git a/crypto/vss/feldman_vss_test.go b/crypto/vss/feldman_vss_test.go index b971ff40..96592c19 100644 --- a/crypto/vss/feldman_vss_test.go +++ b/crypto/vss/feldman_vss_test.go @@ -17,6 +17,33 @@ import ( "github.com/binance-chain/tss-lib/tss" ) +func TestCheckIndexesDup(t *testing.T) { + indexes := make([]*big.Int, 0) + for i := 0; i < 10; i++ { + indexes = append(indexes, common.GetRandomPositiveInt(tss.EC().Params().N)) + } + _, e := CheckIndexes(tss.EC(), indexes) + assert.NoError(t, e) + + indexes = append(indexes, big.NewInt(999)) + indexes = append(indexes, big.NewInt(999)) + _, e = CheckIndexes(tss.EC(), indexes) + assert.Error(t, e) +} + +func TestCheckIndexesZero(t *testing.T) { + indexes := make([]*big.Int, 0) + for i := 0; i < 10; i++ { + indexes = append(indexes, common.GetRandomPositiveInt(tss.EC().Params().N)) + } + _, e := CheckIndexes(tss.EC(), indexes) + assert.NoError(t, e) + + indexes = append(indexes, tss.EC().Params().N) + _, e = CheckIndexes(tss.EC(), indexes) + assert.Error(t, e) +} + func TestCreate(t *testing.T) { num, threshold := 5, 3 diff --git a/go.mod b/go.mod index cde7fd5e..43b63371 100644 --- a/go.mod +++ b/go.mod @@ -18,6 +18,7 @@ require ( github.com/stretchr/testify v1.3.0 golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7 // indirect google.golang.org/protobuf v1.27.1 + modernc.org/sortutil v1.1.0 // indirect ) replace github.com/agl/ed25519 => github.com/binance-chain/edwards25519 v0.0.0-20200305024217-f36fc4b53d43 diff --git a/go.sum b/go.sum index d68fe4ac..581b1344 100644 --- a/go.sum +++ b/go.sum @@ -58,6 +58,7 @@ github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/remyoudompheng/bigfft v0.0.0-20190728182440-6a916e37a237/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -81,3 +82,6 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= +modernc.org/sortutil v1.1.0 h1:oP3U4uM+NT/qBQcbg/K2iqAX0Nx7B1b6YZtq3Gk/PjM= +modernc.org/sortutil v1.1.0/go.mod h1:ZyL98OQHJgH9IEfN71VsamvJgrtRX9Dj2gX+vH86L1k= From d05815e4a0395494f7f2b21635584bd74fe37862 Mon Sep 17 00:00:00 2001 From: ycen Date: Tue, 26 Oct 2021 11:16:28 +0800 Subject: [PATCH 26/50] Fix format of feldman_vss.go with go fmt --- crypto/vss/feldman_vss.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crypto/vss/feldman_vss.go b/crypto/vss/feldman_vss.go index 86625957..25a9171a 100644 --- a/crypto/vss/feldman_vss.go +++ b/crypto/vss/feldman_vss.go @@ -43,7 +43,7 @@ var ( // Check share ids of Shamir's Secret Sharing, return error if duplicate or 0 value found func CheckIndexes(ec elliptic.Curve, indexes []*big.Int) ([]*big.Int, error) { dup := make([]*big.Int, len(indexes)) - for i, v := range(indexes) { + for i, v := range indexes { vMod := new(big.Int).Mod(v, ec.Params().N) if vMod.Cmp(zero) == 0 { return nil, errors.New("party index should not be 0") From 566d4c1619857a4f0b1b01d7d4f06ee25e508ec8 Mon Sep 17 00:00:00 2001 From: ycen Date: Tue, 26 Oct 2021 23:33:14 +0800 Subject: [PATCH 27/50] Update vss, checking duplicate of share_id --- crypto/vss/feldman_vss.go | 12 ++++++------ crypto/vss/feldman_vss_test.go | 7 +++---- go.mod | 1 - go.sum | 4 ---- 4 files changed, 9 insertions(+), 15 deletions(-) diff --git a/crypto/vss/feldman_vss.go b/crypto/vss/feldman_vss.go index 25a9171a..d6636740 100644 --- a/crypto/vss/feldman_vss.go +++ b/crypto/vss/feldman_vss.go @@ -18,7 +18,6 @@ import ( "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" - "modernc.org/sortutil" ) type ( @@ -42,18 +41,19 @@ var ( // Check share ids of Shamir's Secret Sharing, return error if duplicate or 0 value found func CheckIndexes(ec elliptic.Curve, indexes []*big.Int) ([]*big.Int, error) { - dup := make([]*big.Int, len(indexes)) + visited := make(map[string]struct{}) for i, v := range indexes { vMod := new(big.Int).Mod(v, ec.Params().N) if vMod.Cmp(zero) == 0 { return nil, errors.New("party index should not be 0") } - dup[i] = vMod + vModStr := vMod.String() + if _, ok := visited[vModStr]; ok { + return nil, fmt.Errorf("duplicate indexes %s", vModStr) + } + visited[vModStr] = struct{}{} indexes[i] = vMod } - if sortutil.Dedupe(sortutil.BigIntSlice(dup)) < len(indexes) { - return nil, errors.New("duplicate in indexes") - } return indexes, nil } diff --git a/crypto/vss/feldman_vss_test.go b/crypto/vss/feldman_vss_test.go index 96592c19..50357aef 100644 --- a/crypto/vss/feldman_vss_test.go +++ b/crypto/vss/feldman_vss_test.go @@ -19,21 +19,20 @@ import ( func TestCheckIndexesDup(t *testing.T) { indexes := make([]*big.Int, 0) - for i := 0; i < 10; i++ { + for i := 0; i < 1000; i++ { indexes = append(indexes, common.GetRandomPositiveInt(tss.EC().Params().N)) } _, e := CheckIndexes(tss.EC(), indexes) assert.NoError(t, e) - indexes = append(indexes, big.NewInt(999)) - indexes = append(indexes, big.NewInt(999)) + indexes = append(indexes, indexes[99]) _, e = CheckIndexes(tss.EC(), indexes) assert.Error(t, e) } func TestCheckIndexesZero(t *testing.T) { indexes := make([]*big.Int, 0) - for i := 0; i < 10; i++ { + for i := 0; i < 1000; i++ { indexes = append(indexes, common.GetRandomPositiveInt(tss.EC().Params().N)) } _, e := CheckIndexes(tss.EC(), indexes) diff --git a/go.mod b/go.mod index 43b63371..cde7fd5e 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,6 @@ require ( github.com/stretchr/testify v1.3.0 golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7 // indirect google.golang.org/protobuf v1.27.1 - modernc.org/sortutil v1.1.0 // indirect ) replace github.com/agl/ed25519 => github.com/binance-chain/edwards25519 v0.0.0-20200305024217-f36fc4b53d43 diff --git a/go.sum b/go.sum index 581b1344..d68fe4ac 100644 --- a/go.sum +++ b/go.sum @@ -58,7 +58,6 @@ github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/remyoudompheng/bigfft v0.0.0-20190728182440-6a916e37a237/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= @@ -82,6 +81,3 @@ gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -modernc.org/mathutil v1.0.0/go.mod h1:wU0vUrJsVWBZ4P6e7xtFJEhFSNsfRLJ8H458uRjg03k= -modernc.org/sortutil v1.1.0 h1:oP3U4uM+NT/qBQcbg/K2iqAX0Nx7B1b6YZtq3Gk/PjM= -modernc.org/sortutil v1.1.0/go.mod h1:ZyL98OQHJgH9IEfN71VsamvJgrtRX9Dj2gX+vH86L1k= From a1dabf270970258ab8783575cb5af9d050e450e8 Mon Sep 17 00:00:00 2001 From: ycen Date: Mon, 8 Nov 2021 11:22:39 +0800 Subject: [PATCH 28/50] Check paillier ciphertext --- crypto/paillier/paillier.go | 7 ++++++- crypto/paillier/paillier_test.go | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/crypto/paillier/paillier.go b/crypto/paillier/paillier.go index e2461c19..bf7e8399 100644 --- a/crypto/paillier/paillier.go +++ b/crypto/paillier/paillier.go @@ -52,7 +52,8 @@ type ( ) var ( - ErrMessageTooLong = fmt.Errorf("the message is too large or < 0") + ErrMessageTooLong = fmt.Errorf("the message is too large or < 0") + ErrMessageMalFormed = fmt.Errorf("the message is mal-formed") zero = big.NewInt(0) one = big.NewInt(1) @@ -173,6 +174,10 @@ func (privateKey *PrivateKey) Decrypt(c *big.Int) (m *big.Int, err error) { if c.Cmp(zero) == -1 || c.Cmp(N2) != -1 { // c < 0 || c >= N2 ? return nil, ErrMessageTooLong } + cg := new(big.Int).GCD(nil, nil, c, N2) + if cg.Cmp(one) == 1 { + return nil, ErrMessageMalFormed + } // 1. L(u) = (c^LambdaN-1 mod N2) / N Lc := L(new(big.Int).Exp(c, privateKey.LambdaN, N2), privateKey.N) // 2. L(u) = (Gamma^LambdaN-1 mod N2) / N diff --git a/crypto/paillier/paillier_test.go b/crypto/paillier/paillier_test.go index 053966ca..3914d9bf 100644 --- a/crypto/paillier/paillier_test.go +++ b/crypto/paillier/paillier_test.go @@ -64,6 +64,10 @@ func TestEncryptDecrypt(t *testing.T) { assert.NoError(t, err) assert.Equal(t, 0, exp.Cmp(ret), "wrong decryption ", ret, " is not ", exp) + + cypher = new(big.Int).Set(privateKey.N) + _, err = privateKey.Decrypt(cypher) + assert.Error(t, err) } func TestHomoMul(t *testing.T) { From 2718fca7e5b4dbe3f51760ce91240f4c6a209854 Mon Sep 17 00:00:00 2001 From: Piotr Dyraga Date: Wed, 8 Dec 2021 17:37:03 +0100 Subject: [PATCH 29/50] Do not normalize IDs of Shamir's Secret Sharing We need to ensure that: - all indexes are non-zero, - all indexes are non-zero modulo the curve order, - all indexes are unique modulo the curve order. The first two are guarded in `CheckIndexes` function by: ``` vMod := new(big.Int).Mod(v, ec.Params().N) if vMod.Cmp(zero) == 0 { return nil, errors.New("party index should not be 0") } ``` The last one is guarded by: ``` vModStr := vMod.String() if _, ok := visited[vModStr]; ok { return nil, fmt.Errorf("duplicate indexes %s", vModStr) } visited[vModStr] = struct{}{} ``` `CheckIndexes` was additionally normalizing identifiers mod elliptic curve order. This was not really needed and could cause problems during signing. --- crypto/vss/feldman_vss.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/crypto/vss/feldman_vss.go b/crypto/vss/feldman_vss.go index d6636740..455a4922 100644 --- a/crypto/vss/feldman_vss.go +++ b/crypto/vss/feldman_vss.go @@ -42,7 +42,7 @@ var ( // Check share ids of Shamir's Secret Sharing, return error if duplicate or 0 value found func CheckIndexes(ec elliptic.Curve, indexes []*big.Int) ([]*big.Int, error) { visited := make(map[string]struct{}) - for i, v := range indexes { + for _, v := range indexes { vMod := new(big.Int).Mod(v, ec.Params().N) if vMod.Cmp(zero) == 0 { return nil, errors.New("party index should not be 0") @@ -52,7 +52,6 @@ func CheckIndexes(ec elliptic.Curve, indexes []*big.Int) ([]*big.Int, error) { return nil, fmt.Errorf("duplicate indexes %s", vModStr) } visited[vModStr] = struct{}{} - indexes[i] = vMod } return indexes, nil } From ec06b0a01890a81762cfa26252594e2962ce0501 Mon Sep 17 00:00:00 2001 From: ycen <44356973+yycen@users.noreply.github.com> Date: Mon, 13 Dec 2021 23:39:38 +0800 Subject: [PATCH 30/50] Additional check when Ks mismatch in savedata and sortedID (#156) * Panic when save data and sortedIDs not match * Check Ks when computing Lagrange coefs --- ecdsa/keygen/save_data.go | 4 ++-- ecdsa/signing/prepare.go | 7 ++++++- eddsa/keygen/save_data.go | 3 +-- eddsa/signing/prepare.go | 7 ++++++- 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/ecdsa/keygen/save_data.go b/ecdsa/keygen/save_data.go index dff764a7..406a2d68 100644 --- a/ecdsa/keygen/save_data.go +++ b/ecdsa/keygen/save_data.go @@ -8,9 +8,9 @@ package keygen import ( "encoding/hex" + "errors" "math/big" - "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" "github.com/binance-chain/tss-lib/crypto/paillier" "github.com/binance-chain/tss-lib/tss" @@ -87,7 +87,7 @@ func BuildLocalSaveDataSubset(sourceData LocalPartySaveData, sortedIDs tss.Sorte for j, id := range sortedIDs { savedIdx, ok := keysToIndices[hex.EncodeToString(id.Key)] if !ok { - common.Logger.Warning("BuildLocalSaveDataSubset: unable to find a signer party in the local save data", id) + panic(errors.New("BuildLocalSaveDataSubset: unable to find a signer party in the local save data")) } newData.Ks[j] = sourceData.Ks[savedIdx] newData.NTildej[j] = sourceData.NTildej[savedIdx] diff --git a/ecdsa/signing/prepare.go b/ecdsa/signing/prepare.go index 7f79ff35..30fb824e 100644 --- a/ecdsa/signing/prepare.go +++ b/ecdsa/signing/prepare.go @@ -34,8 +34,13 @@ func PrepareForSigning(ec elliptic.Curve, i, pax int, xi *big.Int, ks []*big.Int if j == i { continue } + ksj := ks[j] + ksi := ks[i] + if ksj.Cmp(ksi) == 0 { + panic(fmt.Errorf("index of two parties are equal")) + } // big.Int Div is calculated as: a/b = a * modInv(b,q) - coef := modQ.Mul(ks[j], modQ.ModInverse(new(big.Int).Sub(ks[j], ks[i]))) + coef := modQ.Mul(ks[j], modQ.ModInverse(new(big.Int).Sub(ksj, ksi))) wi = modQ.Mul(wi, coef) } diff --git a/eddsa/keygen/save_data.go b/eddsa/keygen/save_data.go index df131caf..b712f17c 100644 --- a/eddsa/keygen/save_data.go +++ b/eddsa/keygen/save_data.go @@ -10,7 +10,6 @@ import ( "encoding/hex" "math/big" - "github.com/binance-chain/tss-lib/common" "github.com/binance-chain/tss-lib/crypto" "github.com/binance-chain/tss-lib/tss" ) @@ -54,7 +53,7 @@ func BuildLocalSaveDataSubset(sourceData LocalPartySaveData, sortedIDs tss.Sorte for j, id := range sortedIDs { savedIdx, ok := keysToIndices[hex.EncodeToString(id.Key)] if !ok { - common.Logger.Warning("BuildLocalSaveDataSubset: unable to find a signer party in the local save data", id) + panic("BuildLocalSaveDataSubset: unable to find a signer party in the local save data") } newData.Ks[j] = sourceData.Ks[savedIdx] newData.BigXj[j] = sourceData.BigXj[savedIdx] diff --git a/eddsa/signing/prepare.go b/eddsa/signing/prepare.go index 81923fbe..9bdb2287 100644 --- a/eddsa/signing/prepare.go +++ b/eddsa/signing/prepare.go @@ -30,8 +30,13 @@ func PrepareForSigning(ec elliptic.Curve, i, pax int, xi *big.Int, ks []*big.Int if j == i { continue } + ksj := ks[j] + ksi := ks[i] + if ksj.Cmp(ksi) == 0 { + panic(fmt.Errorf("index of two parties are equal")) + } // big.Int Div is calculated as: a/b = a * modInv(b,q) - coef := modQ.Mul(ks[j], modQ.ModInverse(new(big.Int).Sub(ks[j], ks[i]))) + coef := modQ.Mul(ks[j], modQ.ModInverse(new(big.Int).Sub(ksj, ksi))) wi = modQ.Mul(wi, coef) } From 62459ad41243bd9a5b6f8b06e5f1e78cbaf51802 Mon Sep 17 00:00:00 2001 From: ycen Date: Wed, 22 Dec 2021 19:30:08 +0800 Subject: [PATCH 31/50] Fix for ECDSA keygen test --- ecdsa/keygen/local_party_test.go | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/ecdsa/keygen/local_party_test.go b/ecdsa/keygen/local_party_test.go index f61636b9..896aa5fd 100644 --- a/ecdsa/keygen/local_party_test.go +++ b/ecdsa/keygen/local_party_test.go @@ -249,10 +249,7 @@ keygen: u := new(big.Int) for j, Pj := range parties { pShares := make(vss.Shares, 0) - for j2, P := range parties { - if j2 == j { - continue - } + for _, P := range parties { vssMsgs := P.temp.kgRound2Message1s share := vssMsgs[j].Content().(*KGRound2Message1).Share shareStruct := &vss.Share{ From b5c733d23a87f5319f16c13defe8514540ac7a5a Mon Sep 17 00:00:00 2001 From: ycen Date: Thu, 23 Dec 2021 11:01:51 +0800 Subject: [PATCH 32/50] Fix ECDSA keygen round2 message store --- ecdsa/keygen/round_2.go | 1 - 1 file changed, 1 deletion(-) diff --git a/ecdsa/keygen/round_2.go b/ecdsa/keygen/round_2.go index d1ebaf18..78935ca5 100644 --- a/ecdsa/keygen/round_2.go +++ b/ecdsa/keygen/round_2.go @@ -105,7 +105,6 @@ func (round *round2) Start() *tss.Error { round.temp.kgRound2Message1s[j] = r2msg1 continue } - round.temp.kgRound2Message1s[i] = r2msg1 round.out <- r2msg1 } From c65c35640cd679eceb076ec9e4762edf9030b7c5 Mon Sep 17 00:00:00 2001 From: Hungry Date: Wed, 27 Apr 2022 15:42:10 +0800 Subject: [PATCH 33/50] fix: rebrand (#173) --- Makefile | 2 +- README.md | 10 +++++----- common/hash_utils_test.go | 2 +- common/random_test.go | 2 +- crypto/commitments/commitment.go | 2 +- crypto/commitments/commitment_test.go | 2 +- crypto/dlnproof/proof.go | 4 ++-- crypto/ecpoint.go | 2 +- crypto/ecpoint_test.go | 4 ++-- crypto/mta/proofs.go | 6 +++--- crypto/mta/range_proof.go | 4 ++-- crypto/mta/range_proof_test.go | 8 ++++---- crypto/mta/share_protocol.go | 6 +++--- crypto/mta/share_protocol_test.go | 10 +++++----- crypto/paillier/paillier.go | 4 ++-- crypto/paillier/paillier_test.go | 8 ++++---- crypto/schnorr/schnorr_proof.go | 4 ++-- crypto/schnorr/schnorr_proof_test.go | 8 ++++---- crypto/utils.go | 2 +- crypto/vss/feldman_vss.go | 4 ++-- crypto/vss/feldman_vss_test.go | 6 +++--- ecdsa/keygen/local_party.go | 8 ++++---- ecdsa/keygen/local_party_test.go | 14 +++++++------- ecdsa/keygen/messages.go | 12 ++++++------ ecdsa/keygen/prepare.go | 4 ++-- ecdsa/keygen/round_1.go | 12 ++++++------ ecdsa/keygen/round_2.go | 2 +- ecdsa/keygen/round_3.go | 10 +++++----- ecdsa/keygen/round_4.go | 6 +++--- ecdsa/keygen/rounds.go | 2 +- ecdsa/keygen/save_data.go | 6 +++--- ecdsa/keygen/test_utils.go | 4 ++-- ecdsa/resharing/local_party.go | 12 ++++++------ ecdsa/resharing/local_party_test.go | 14 +++++++------- ecdsa/resharing/messages.go | 14 +++++++------- ecdsa/resharing/round_1_old_step_1.go | 12 ++++++------ ecdsa/resharing/round_2_new_step_1.go | 6 +++--- ecdsa/resharing/round_3_old_step_2.go | 2 +- ecdsa/resharing/round_4_new_step_2.go | 10 +++++----- ecdsa/resharing/round_5_new_step_3.go | 2 +- ecdsa/resharing/rounds.go | 4 ++-- ecdsa/signing/finalize.go | 4 ++-- ecdsa/signing/local_party.go | 12 ++++++------ ecdsa/signing/local_party_test.go | 8 ++++---- ecdsa/signing/messages.go | 12 ++++++------ ecdsa/signing/prepare.go | 4 ++-- ecdsa/signing/round_1.go | 12 ++++++------ ecdsa/signing/round_2.go | 4 ++-- ecdsa/signing/round_3.go | 6 +++--- ecdsa/signing/round_4.go | 6 +++--- ecdsa/signing/round_5.go | 8 ++++---- ecdsa/signing/round_6.go | 4 ++-- ecdsa/signing/round_7.go | 8 ++++---- ecdsa/signing/round_8.go | 2 +- ecdsa/signing/round_9.go | 4 ++-- ecdsa/signing/rounds.go | 6 +++--- eddsa/keygen/local_party.go | 8 ++++---- eddsa/keygen/local_party_test.go | 10 +++++----- eddsa/keygen/messages.go | 12 ++++++------ eddsa/keygen/round_1.go | 10 +++++----- eddsa/keygen/round_2.go | 4 ++-- eddsa/keygen/round_3.go | 10 +++++----- eddsa/keygen/rounds.go | 2 +- eddsa/keygen/save_data.go | 4 ++-- eddsa/keygen/test_utils.go | 4 ++-- eddsa/resharing/local_party.go | 12 ++++++------ eddsa/resharing/local_party_test.go | 14 +++++++------- eddsa/resharing/messages.go | 10 +++++----- eddsa/resharing/round_1_old_step_1.go | 12 ++++++------ eddsa/resharing/round_2_new_step_1.go | 2 +- eddsa/resharing/round_3_old_step_2.go | 2 +- eddsa/resharing/round_4_new_step_2.go | 10 +++++----- eddsa/resharing/round_5_new_step_3.go | 2 +- eddsa/resharing/rounds.go | 4 ++-- eddsa/signing/finalize.go | 2 +- eddsa/signing/local_party.go | 10 +++++----- eddsa/signing/local_party_test.go | 8 ++++---- eddsa/signing/messages.go | 10 +++++----- eddsa/signing/prepare.go | 2 +- eddsa/signing/round_1.go | 10 +++++----- eddsa/signing/round_2.go | 4 ++-- eddsa/signing/round_3.go | 6 +++--- eddsa/signing/rounds.go | 6 +++--- eddsa/signing/utils.go | 2 +- go.mod | 3 +-- go.sum | 7 ++++--- test/utils.go | 2 +- tss/party.go | 2 +- tss/party_id.go | 2 +- 89 files changed, 282 insertions(+), 282 deletions(-) diff --git a/Makefile b/Makefile index 85abac14..164a0a31 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -MODULE = github.com/binance-chain/tss-lib +MODULE = github.com/bnb-chain/tss-lib PACKAGES = $(shell go list ./... | grep -v '/vendor/') all: protob test diff --git a/README.md b/README.md index a3ebf45e..b63de2aa 100644 --- a/README.md +++ b/README.md @@ -3,10 +3,10 @@ [1]: https://img.shields.io/badge/license-MIT-blue.svg [2]: LICENSE -[3]: https://godoc.org/github.com/binance-chain/tss-lib?status.svg -[4]: https://godoc.org/github.com/binance-chain/tss-lib -[5]: https://goreportcard.com/badge/github.com/binance-chain/tss-lib -[6]: https://goreportcard.com/report/github.com/binance-chain/tss-lib +[3]: https://godoc.org/github.com/bnb-chain/tss-lib?status.svg +[4]: https://godoc.org/github.com/bnb-chain/tss-lib +[5]: https://goreportcard.com/badge/github.com/bnb-chain/tss-lib +[6]: https://goreportcard.com/report/github.com/bnb-chain/tss-lib Permissively MIT Licensed. @@ -150,7 +150,7 @@ Additionally, there should be a mechanism in your transport to allow for "reliab Timeouts and errors should be handled by your application. The method `WaitingFor` may be called on a `Party` to get the set of other parties that it is still waiting for messages from. You may also get the set of culprit parties that caused an error from a `*tss.Error`. ## Security Audit -A full review of this library was carried out by Kudelski Security and their final report was made available in October, 2019. A copy of this report [`audit-binance-tss-lib-final-20191018.pdf`](https://github.com/binance-chain/tss-lib/releases/download/v1.0.0/audit-binance-tss-lib-final-20191018.pdf) may be found in the v1.0.0 release notes of this repository. +A full review of this library was carried out by Kudelski Security and their final report was made available in October, 2019. A copy of this report [`audit-binance-tss-lib-final-20191018.pdf`](https://github.com/bnb-chain/tss-lib/releases/download/v1.0.0/audit-binance-tss-lib-final-20191018.pdf) may be found in the v1.0.0 release notes of this repository. ## References \[1\] https://eprint.iacr.org/2019/114.pdf diff --git a/common/hash_utils_test.go b/common/hash_utils_test.go index 1a07f0d7..b4abcfd6 100644 --- a/common/hash_utils_test.go +++ b/common/hash_utils_test.go @@ -11,7 +11,7 @@ import ( "reflect" "testing" - "github.com/binance-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/common" ) func TestRejectionSample(t *testing.T) { diff --git a/common/random_test.go b/common/random_test.go index 8d7b779b..4a9eb3c8 100644 --- a/common/random_test.go +++ b/common/random_test.go @@ -12,7 +12,7 @@ import ( "github.com/stretchr/testify/assert" - "github.com/binance-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/common" ) const ( diff --git a/crypto/commitments/commitment.go b/crypto/commitments/commitment.go index 01a22def..b58a3ced 100644 --- a/crypto/commitments/commitment.go +++ b/crypto/commitments/commitment.go @@ -12,7 +12,7 @@ package commitments import ( "math/big" - "github.com/binance-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/common" ) const ( diff --git a/crypto/commitments/commitment_test.go b/crypto/commitments/commitment_test.go index 20ffedc0..d3912607 100644 --- a/crypto/commitments/commitment_test.go +++ b/crypto/commitments/commitment_test.go @@ -12,7 +12,7 @@ import ( "github.com/stretchr/testify/assert" - . "github.com/binance-chain/tss-lib/crypto/commitments" + . "github.com/bnb-chain/tss-lib/crypto/commitments" ) func TestCreateVerify(t *testing.T) { diff --git a/crypto/dlnproof/proof.go b/crypto/dlnproof/proof.go index eefadf64..a2cca2b2 100644 --- a/crypto/dlnproof/proof.go +++ b/crypto/dlnproof/proof.go @@ -15,8 +15,8 @@ import ( "fmt" "math/big" - "github.com/binance-chain/tss-lib/common" - cmts "github.com/binance-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/common" + cmts "github.com/bnb-chain/tss-lib/crypto/commitments" ) const Iterations = 128 diff --git a/crypto/ecpoint.go b/crypto/ecpoint.go index 51f91a12..26556eaf 100644 --- a/crypto/ecpoint.go +++ b/crypto/ecpoint.go @@ -17,7 +17,7 @@ import ( "github.com/decred/dcrd/dcrec/edwards/v2" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/tss" ) // ECPoint convenience helper diff --git a/crypto/ecpoint_test.go b/crypto/ecpoint_test.go index 3d79f7d0..b3d518e6 100644 --- a/crypto/ecpoint_test.go +++ b/crypto/ecpoint_test.go @@ -17,8 +17,8 @@ import ( "github.com/decred/dcrd/dcrec/edwards/v2" "github.com/stretchr/testify/assert" - . "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/tss" + . "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/tss" ) func TestFlattenECPoints(t *testing.T) { diff --git a/crypto/mta/proofs.go b/crypto/mta/proofs.go index 28dc4f16..1ae4d51e 100644 --- a/crypto/mta/proofs.go +++ b/crypto/mta/proofs.go @@ -12,9 +12,9 @@ import ( "fmt" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/paillier" ) const ( diff --git a/crypto/mta/range_proof.go b/crypto/mta/range_proof.go index 471cb498..1780f8e3 100644 --- a/crypto/mta/range_proof.go +++ b/crypto/mta/range_proof.go @@ -12,8 +12,8 @@ import ( "fmt" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto/paillier" ) const ( diff --git a/crypto/mta/range_proof_test.go b/crypto/mta/range_proof_test.go index 3e44394e..d8be6983 100644 --- a/crypto/mta/range_proof_test.go +++ b/crypto/mta/range_proof_test.go @@ -13,10 +13,10 @@ import ( "github.com/stretchr/testify/assert" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/paillier" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/tss" ) // Using a modulus length of 2048 is recommended in the GG18 spec diff --git a/crypto/mta/share_protocol.go b/crypto/mta/share_protocol.go index 37663079..4f288582 100644 --- a/crypto/mta/share_protocol.go +++ b/crypto/mta/share_protocol.go @@ -11,9 +11,9 @@ import ( "errors" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/paillier" ) func AliceInit( diff --git a/crypto/mta/share_protocol_test.go b/crypto/mta/share_protocol_test.go index b1c591d8..b612a8b6 100644 --- a/crypto/mta/share_protocol_test.go +++ b/crypto/mta/share_protocol_test.go @@ -13,11 +13,11 @@ import ( "github.com/stretchr/testify/assert" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/paillier" - "github.com/binance-chain/tss-lib/ecdsa/keygen" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/tss" ) // Using a modulus length of 2048 is recommended in the GG18 spec diff --git a/crypto/paillier/paillier.go b/crypto/paillier/paillier.go index bf7e8399..7eb80f2c 100644 --- a/crypto/paillier/paillier.go +++ b/crypto/paillier/paillier.go @@ -26,8 +26,8 @@ import ( "github.com/otiai10/primes" - "github.com/binance-chain/tss-lib/common" - crypto2 "github.com/binance-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/common" + crypto2 "github.com/bnb-chain/tss-lib/crypto" ) const ( diff --git a/crypto/paillier/paillier_test.go b/crypto/paillier/paillier_test.go index 3914d9bf..0abf7f53 100644 --- a/crypto/paillier/paillier_test.go +++ b/crypto/paillier/paillier_test.go @@ -13,10 +13,10 @@ import ( "github.com/stretchr/testify/assert" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - . "github.com/binance-chain/tss-lib/crypto/paillier" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + . "github.com/bnb-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/tss" ) // Using a modulus length of 2048 is recommended in the GG18 spec diff --git a/crypto/schnorr/schnorr_proof.go b/crypto/schnorr/schnorr_proof.go index a3cfa83f..61a95862 100644 --- a/crypto/schnorr/schnorr_proof.go +++ b/crypto/schnorr/schnorr_proof.go @@ -10,8 +10,8 @@ import ( "errors" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" ) type ( diff --git a/crypto/schnorr/schnorr_proof_test.go b/crypto/schnorr/schnorr_proof_test.go index f8a2503f..c81fed4d 100644 --- a/crypto/schnorr/schnorr_proof_test.go +++ b/crypto/schnorr/schnorr_proof_test.go @@ -11,10 +11,10 @@ import ( "github.com/stretchr/testify/assert" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - . "github.com/binance-chain/tss-lib/crypto/schnorr" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + . "github.com/bnb-chain/tss-lib/crypto/schnorr" + "github.com/bnb-chain/tss-lib/tss" ) func TestSchnorrProof(t *testing.T) { diff --git a/crypto/utils.go b/crypto/utils.go index 71ee5190..54eddbde 100644 --- a/crypto/utils.go +++ b/crypto/utils.go @@ -10,7 +10,7 @@ import ( "fmt" "math/big" - "github.com/binance-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/common" ) func GenerateNTildei(safePrimes [2]*big.Int) (NTildei, h1i, h2i *big.Int, err error) { diff --git a/crypto/vss/feldman_vss.go b/crypto/vss/feldman_vss.go index 455a4922..5904dc2d 100644 --- a/crypto/vss/feldman_vss.go +++ b/crypto/vss/feldman_vss.go @@ -16,8 +16,8 @@ import ( "fmt" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" ) type ( diff --git a/crypto/vss/feldman_vss_test.go b/crypto/vss/feldman_vss_test.go index 50357aef..d6c0284d 100644 --- a/crypto/vss/feldman_vss_test.go +++ b/crypto/vss/feldman_vss_test.go @@ -12,9 +12,9 @@ import ( "github.com/stretchr/testify/assert" - "github.com/binance-chain/tss-lib/common" - . "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + . "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/tss" ) func TestCheckIndexesDup(t *testing.T) { diff --git a/ecdsa/keygen/local_party.go b/ecdsa/keygen/local_party.go index 0e1ab190..9d0066e3 100644 --- a/ecdsa/keygen/local_party.go +++ b/ecdsa/keygen/local_party.go @@ -11,10 +11,10 @@ import ( "fmt" "math/big" - "github.com/binance-chain/tss-lib/common" - cmt "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + cmt "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/tss" ) // Implements Party diff --git a/ecdsa/keygen/local_party_test.go b/ecdsa/keygen/local_party_test.go index 896aa5fd..8494a9d8 100644 --- a/ecdsa/keygen/local_party_test.go +++ b/ecdsa/keygen/local_party_test.go @@ -20,13 +20,13 @@ import ( "github.com/ipfs/go-log" "github.com/stretchr/testify/assert" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/dlnproof" - "github.com/binance-chain/tss-lib/crypto/paillier" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/test" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/dlnproof" + "github.com/bnb-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/test" + "github.com/bnb-chain/tss-lib/tss" ) const ( diff --git a/ecdsa/keygen/messages.go b/ecdsa/keygen/messages.go index fbebe2ac..67e95dab 100644 --- a/ecdsa/keygen/messages.go +++ b/ecdsa/keygen/messages.go @@ -9,12 +9,12 @@ package keygen import ( "math/big" - "github.com/binance-chain/tss-lib/common" - cmt "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/dlnproof" - "github.com/binance-chain/tss-lib/crypto/paillier" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + cmt "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/dlnproof" + "github.com/bnb-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/tss" ) // These messages were generated from Protocol Buffers definitions into ecdsa-keygen.pb.go diff --git a/ecdsa/keygen/prepare.go b/ecdsa/keygen/prepare.go index 8b162d7b..919b0e00 100644 --- a/ecdsa/keygen/prepare.go +++ b/ecdsa/keygen/prepare.go @@ -12,8 +12,8 @@ import ( "runtime" "time" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto/paillier" ) const ( diff --git a/ecdsa/keygen/round_1.go b/ecdsa/keygen/round_1.go index 3bc83c5e..8eea72d4 100644 --- a/ecdsa/keygen/round_1.go +++ b/ecdsa/keygen/round_1.go @@ -10,12 +10,12 @@ import ( "errors" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - cmts "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/dlnproof" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + cmts "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/dlnproof" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/tss" ) var ( diff --git a/ecdsa/keygen/round_2.go b/ecdsa/keygen/round_2.go index 78935ca5..b41ec78c 100644 --- a/ecdsa/keygen/round_2.go +++ b/ecdsa/keygen/round_2.go @@ -12,7 +12,7 @@ import ( "math/big" "sync" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/tss" ) const ( diff --git a/ecdsa/keygen/round_3.go b/ecdsa/keygen/round_3.go index d03b50cd..454b9201 100644 --- a/ecdsa/keygen/round_3.go +++ b/ecdsa/keygen/round_3.go @@ -13,11 +13,11 @@ import ( "github.com/hashicorp/go-multierror" errors2 "github.com/pkg/errors" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round3) Start() *tss.Error { diff --git a/ecdsa/keygen/round_4.go b/ecdsa/keygen/round_4.go index 2a544836..18603904 100644 --- a/ecdsa/keygen/round_4.go +++ b/ecdsa/keygen/round_4.go @@ -9,9 +9,9 @@ package keygen import ( "errors" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto/paillier" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round4) Start() *tss.Error { diff --git a/ecdsa/keygen/rounds.go b/ecdsa/keygen/rounds.go index bd06a936..313184ab 100644 --- a/ecdsa/keygen/rounds.go +++ b/ecdsa/keygen/rounds.go @@ -7,7 +7,7 @@ package keygen import ( - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/tss" ) const ( diff --git a/ecdsa/keygen/save_data.go b/ecdsa/keygen/save_data.go index 406a2d68..e139149d 100644 --- a/ecdsa/keygen/save_data.go +++ b/ecdsa/keygen/save_data.go @@ -11,9 +11,9 @@ import ( "errors" "math/big" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/paillier" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/tss" ) type ( diff --git a/ecdsa/keygen/test_utils.go b/ecdsa/keygen/test_utils.go index 27d30fec..85aa117c 100644 --- a/ecdsa/keygen/test_utils.go +++ b/ecdsa/keygen/test_utils.go @@ -18,8 +18,8 @@ import ( "github.com/pkg/errors" - "github.com/binance-chain/tss-lib/test" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/test" + "github.com/bnb-chain/tss-lib/tss" ) const ( diff --git a/ecdsa/resharing/local_party.go b/ecdsa/resharing/local_party.go index 3b6ddaf0..3b87d258 100644 --- a/ecdsa/resharing/local_party.go +++ b/ecdsa/resharing/local_party.go @@ -10,12 +10,12 @@ import ( "fmt" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - cmt "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/ecdsa/keygen" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + cmt "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/tss" ) // Implements Party diff --git a/ecdsa/resharing/local_party_test.go b/ecdsa/resharing/local_party_test.go index 1b8172a6..8607e200 100644 --- a/ecdsa/resharing/local_party_test.go +++ b/ecdsa/resharing/local_party_test.go @@ -17,13 +17,13 @@ import ( "github.com/ipfs/go-log" "github.com/stretchr/testify/assert" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/ecdsa/keygen" - . "github.com/binance-chain/tss-lib/ecdsa/resharing" - "github.com/binance-chain/tss-lib/ecdsa/signing" - "github.com/binance-chain/tss-lib/test" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/ecdsa/keygen" + . "github.com/bnb-chain/tss-lib/ecdsa/resharing" + "github.com/bnb-chain/tss-lib/ecdsa/signing" + "github.com/bnb-chain/tss-lib/test" + "github.com/bnb-chain/tss-lib/tss" ) const ( diff --git a/ecdsa/resharing/messages.go b/ecdsa/resharing/messages.go index c8f573a6..a85d02a8 100644 --- a/ecdsa/resharing/messages.go +++ b/ecdsa/resharing/messages.go @@ -10,13 +10,13 @@ import ( "crypto/elliptic" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - cmt "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/dlnproof" - "github.com/binance-chain/tss-lib/crypto/paillier" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + cmt "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/dlnproof" + "github.com/bnb-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/tss" ) // These messages were generated from Protocol Buffers definitions into ecdsa-resharing.pb.go diff --git a/ecdsa/resharing/round_1_old_step_1.go b/ecdsa/resharing/round_1_old_step_1.go index 35cff92a..6358512d 100644 --- a/ecdsa/resharing/round_1_old_step_1.go +++ b/ecdsa/resharing/round_1_old_step_1.go @@ -10,12 +10,12 @@ import ( "errors" "fmt" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/ecdsa/keygen" - "github.com/binance-chain/tss-lib/ecdsa/signing" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/ecdsa/signing" + "github.com/bnb-chain/tss-lib/tss" ) // round 1 represents round 1 of the keygen part of the GG18 ECDSA TSS spec (Gennaro, Goldfeder; 2018) diff --git a/ecdsa/resharing/round_2_new_step_1.go b/ecdsa/resharing/round_2_new_step_1.go index 3f1337be..365e20a3 100644 --- a/ecdsa/resharing/round_2_new_step_1.go +++ b/ecdsa/resharing/round_2_new_step_1.go @@ -9,9 +9,9 @@ package resharing import ( "errors" - "github.com/binance-chain/tss-lib/crypto/dlnproof" - "github.com/binance-chain/tss-lib/ecdsa/keygen" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/crypto/dlnproof" + "github.com/bnb-chain/tss-lib/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round2) Start() *tss.Error { diff --git a/ecdsa/resharing/round_3_old_step_2.go b/ecdsa/resharing/round_3_old_step_2.go index 10c379d1..fcaf755a 100644 --- a/ecdsa/resharing/round_3_old_step_2.go +++ b/ecdsa/resharing/round_3_old_step_2.go @@ -9,7 +9,7 @@ package resharing import ( "errors" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round3) Start() *tss.Error { diff --git a/ecdsa/resharing/round_4_new_step_2.go b/ecdsa/resharing/round_4_new_step_2.go index 08519570..40ef9448 100644 --- a/ecdsa/resharing/round_4_new_step_2.go +++ b/ecdsa/resharing/round_4_new_step_2.go @@ -14,11 +14,11 @@ import ( errors2 "github.com/pkg/errors" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round4) Start() *tss.Error { diff --git a/ecdsa/resharing/round_5_new_step_3.go b/ecdsa/resharing/round_5_new_step_3.go index ffe9e5d2..2ce8a448 100644 --- a/ecdsa/resharing/round_5_new_step_3.go +++ b/ecdsa/resharing/round_5_new_step_3.go @@ -9,7 +9,7 @@ package resharing import ( "errors" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round5) Start() *tss.Error { diff --git a/ecdsa/resharing/rounds.go b/ecdsa/resharing/rounds.go index d23b50bd..bcebf453 100644 --- a/ecdsa/resharing/rounds.go +++ b/ecdsa/resharing/rounds.go @@ -7,8 +7,8 @@ package resharing import ( - "github.com/binance-chain/tss-lib/ecdsa/keygen" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/tss" ) const ( diff --git a/ecdsa/signing/finalize.go b/ecdsa/signing/finalize.go index eb1ac295..b2fc670f 100644 --- a/ecdsa/signing/finalize.go +++ b/ecdsa/signing/finalize.go @@ -12,8 +12,8 @@ import ( "fmt" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/tss" ) func (round *finalization) Start() *tss.Error { diff --git a/ecdsa/signing/local_party.go b/ecdsa/signing/local_party.go index cde5c271..8c3182ae 100644 --- a/ecdsa/signing/local_party.go +++ b/ecdsa/signing/local_party.go @@ -11,12 +11,12 @@ import ( "fmt" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - cmt "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/mta" - "github.com/binance-chain/tss-lib/ecdsa/keygen" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + cmt "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/mta" + "github.com/bnb-chain/tss-lib/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/tss" ) // Implements Party diff --git a/ecdsa/signing/local_party_test.go b/ecdsa/signing/local_party_test.go index 7db6f069..74b80eb6 100644 --- a/ecdsa/signing/local_party_test.go +++ b/ecdsa/signing/local_party_test.go @@ -17,10 +17,10 @@ import ( "github.com/ipfs/go-log" "github.com/stretchr/testify/assert" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/ecdsa/keygen" - "github.com/binance-chain/tss-lib/test" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/test" + "github.com/bnb-chain/tss-lib/tss" ) const ( diff --git a/ecdsa/signing/messages.go b/ecdsa/signing/messages.go index a5d48153..fbb2a621 100644 --- a/ecdsa/signing/messages.go +++ b/ecdsa/signing/messages.go @@ -10,12 +10,12 @@ import ( "crypto/elliptic" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - cmt "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/mta" - "github.com/binance-chain/tss-lib/crypto/schnorr" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + cmt "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/mta" + "github.com/bnb-chain/tss-lib/crypto/schnorr" + "github.com/bnb-chain/tss-lib/tss" ) // These messages were generated from Protocol Buffers definitions into ecdsa-signing.pb.go diff --git a/ecdsa/signing/prepare.go b/ecdsa/signing/prepare.go index 30fb824e..60f107bf 100644 --- a/ecdsa/signing/prepare.go +++ b/ecdsa/signing/prepare.go @@ -11,8 +11,8 @@ import ( "fmt" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" ) // PrepareForSigning(), GG18Spec (11) Fig. 14 diff --git a/ecdsa/signing/round_1.go b/ecdsa/signing/round_1.go index 67b1f270..4672732e 100644 --- a/ecdsa/signing/round_1.go +++ b/ecdsa/signing/round_1.go @@ -11,12 +11,12 @@ import ( "fmt" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/mta" - "github.com/binance-chain/tss-lib/ecdsa/keygen" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/mta" + "github.com/bnb-chain/tss-lib/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/tss" ) var ( diff --git a/ecdsa/signing/round_2.go b/ecdsa/signing/round_2.go index 53865de3..79702e0d 100644 --- a/ecdsa/signing/round_2.go +++ b/ecdsa/signing/round_2.go @@ -12,8 +12,8 @@ import ( errorspkg "github.com/pkg/errors" - "github.com/binance-chain/tss-lib/crypto/mta" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/crypto/mta" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round2) Start() *tss.Error { diff --git a/ecdsa/signing/round_3.go b/ecdsa/signing/round_3.go index cb72f59e..87c4f8b4 100644 --- a/ecdsa/signing/round_3.go +++ b/ecdsa/signing/round_3.go @@ -13,9 +13,9 @@ import ( errorspkg "github.com/pkg/errors" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto/mta" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto/mta" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round3) Start() *tss.Error { diff --git a/ecdsa/signing/round_4.go b/ecdsa/signing/round_4.go index c8d3c1af..9048ff00 100644 --- a/ecdsa/signing/round_4.go +++ b/ecdsa/signing/round_4.go @@ -12,9 +12,9 @@ import ( errors2 "github.com/pkg/errors" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto/schnorr" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto/schnorr" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round4) Start() *tss.Error { diff --git a/ecdsa/signing/round_5.go b/ecdsa/signing/round_5.go index 1bc39572..bcaefa5a 100644 --- a/ecdsa/signing/round_5.go +++ b/ecdsa/signing/round_5.go @@ -11,10 +11,10 @@ import ( errors2 "github.com/pkg/errors" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round5) Start() *tss.Error { diff --git a/ecdsa/signing/round_6.go b/ecdsa/signing/round_6.go index 536ca66e..de930654 100644 --- a/ecdsa/signing/round_6.go +++ b/ecdsa/signing/round_6.go @@ -11,8 +11,8 @@ import ( errors2 "github.com/pkg/errors" - "github.com/binance-chain/tss-lib/crypto/schnorr" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/crypto/schnorr" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round6) Start() *tss.Error { diff --git a/ecdsa/signing/round_7.go b/ecdsa/signing/round_7.go index 36a87d98..3242b64b 100644 --- a/ecdsa/signing/round_7.go +++ b/ecdsa/signing/round_7.go @@ -12,10 +12,10 @@ import ( errors2 "github.com/pkg/errors" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round7) Start() *tss.Error { diff --git a/ecdsa/signing/round_8.go b/ecdsa/signing/round_8.go index 45379e52..361a490b 100644 --- a/ecdsa/signing/round_8.go +++ b/ecdsa/signing/round_8.go @@ -9,7 +9,7 @@ package signing import ( "errors" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round8) Start() *tss.Error { diff --git a/ecdsa/signing/round_9.go b/ecdsa/signing/round_9.go index 2f8f18c5..dcc7c083 100644 --- a/ecdsa/signing/round_9.go +++ b/ecdsa/signing/round_9.go @@ -9,8 +9,8 @@ package signing import ( "errors" - "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round9) Start() *tss.Error { diff --git a/ecdsa/signing/rounds.go b/ecdsa/signing/rounds.go index c3ced0d3..b546b656 100644 --- a/ecdsa/signing/rounds.go +++ b/ecdsa/signing/rounds.go @@ -7,9 +7,9 @@ package signing import ( - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/ecdsa/keygen" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/tss" ) const ( diff --git a/eddsa/keygen/local_party.go b/eddsa/keygen/local_party.go index ccc2474a..8d94f5d4 100644 --- a/eddsa/keygen/local_party.go +++ b/eddsa/keygen/local_party.go @@ -11,10 +11,10 @@ import ( "fmt" "math/big" - "github.com/binance-chain/tss-lib/common" - cmt "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + cmt "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/tss" ) // Implements Party diff --git a/eddsa/keygen/local_party_test.go b/eddsa/keygen/local_party_test.go index 7cc54f69..0a5adf1d 100644 --- a/eddsa/keygen/local_party_test.go +++ b/eddsa/keygen/local_party_test.go @@ -19,11 +19,11 @@ import ( "github.com/ipfs/go-log" "github.com/stretchr/testify/assert" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/test" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/test" + "github.com/bnb-chain/tss-lib/tss" ) const ( diff --git a/eddsa/keygen/messages.go b/eddsa/keygen/messages.go index d8d8a801..50b8ac54 100644 --- a/eddsa/keygen/messages.go +++ b/eddsa/keygen/messages.go @@ -10,12 +10,12 @@ import ( "crypto/elliptic" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - cmt "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/schnorr" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + cmt "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/schnorr" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/tss" ) // These messages were generated from Protocol Buffers definitions into eddsa-keygen.pb.go diff --git a/eddsa/keygen/round_1.go b/eddsa/keygen/round_1.go index 5e70c909..a799d27c 100644 --- a/eddsa/keygen/round_1.go +++ b/eddsa/keygen/round_1.go @@ -10,11 +10,11 @@ import ( "errors" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - cmts "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + cmts "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/tss" ) var ( diff --git a/eddsa/keygen/round_2.go b/eddsa/keygen/round_2.go index f911a8f1..0db0d1b5 100644 --- a/eddsa/keygen/round_2.go +++ b/eddsa/keygen/round_2.go @@ -11,8 +11,8 @@ import ( errors2 "github.com/pkg/errors" - "github.com/binance-chain/tss-lib/crypto/schnorr" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/crypto/schnorr" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round2) Start() *tss.Error { diff --git a/eddsa/keygen/round_3.go b/eddsa/keygen/round_3.go index 3aefa3fb..7a82f883 100644 --- a/eddsa/keygen/round_3.go +++ b/eddsa/keygen/round_3.go @@ -13,11 +13,11 @@ import ( "github.com/hashicorp/go-multierror" errors2 "github.com/pkg/errors" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round3) Start() *tss.Error { diff --git a/eddsa/keygen/rounds.go b/eddsa/keygen/rounds.go index 3cb52f3f..f87f47a4 100644 --- a/eddsa/keygen/rounds.go +++ b/eddsa/keygen/rounds.go @@ -7,7 +7,7 @@ package keygen import ( - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/tss" ) const ( diff --git a/eddsa/keygen/save_data.go b/eddsa/keygen/save_data.go index b712f17c..ae40c3d2 100644 --- a/eddsa/keygen/save_data.go +++ b/eddsa/keygen/save_data.go @@ -10,8 +10,8 @@ import ( "encoding/hex" "math/big" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/tss" ) type ( diff --git a/eddsa/keygen/test_utils.go b/eddsa/keygen/test_utils.go index a4655f70..ba8eac13 100644 --- a/eddsa/keygen/test_utils.go +++ b/eddsa/keygen/test_utils.go @@ -17,8 +17,8 @@ import ( "github.com/pkg/errors" - "github.com/binance-chain/tss-lib/test" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/test" + "github.com/bnb-chain/tss-lib/tss" ) const ( diff --git a/eddsa/resharing/local_party.go b/eddsa/resharing/local_party.go index 2b7b7469..eba35640 100644 --- a/eddsa/resharing/local_party.go +++ b/eddsa/resharing/local_party.go @@ -10,12 +10,12 @@ import ( "fmt" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - cmt "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/eddsa/keygen" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + cmt "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/eddsa/keygen" + "github.com/bnb-chain/tss-lib/tss" ) // Implements Party diff --git a/eddsa/resharing/local_party_test.go b/eddsa/resharing/local_party_test.go index 7dfe903c..4aa8f85c 100644 --- a/eddsa/resharing/local_party_test.go +++ b/eddsa/resharing/local_party_test.go @@ -15,13 +15,13 @@ import ( "github.com/ipfs/go-log" "github.com/stretchr/testify/assert" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/eddsa/keygen" - . "github.com/binance-chain/tss-lib/eddsa/resharing" - "github.com/binance-chain/tss-lib/eddsa/signing" - "github.com/binance-chain/tss-lib/test" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/eddsa/keygen" + . "github.com/bnb-chain/tss-lib/eddsa/resharing" + "github.com/bnb-chain/tss-lib/eddsa/signing" + "github.com/bnb-chain/tss-lib/test" + "github.com/bnb-chain/tss-lib/tss" ) const ( diff --git a/eddsa/resharing/messages.go b/eddsa/resharing/messages.go index 80cb32d7..23003bb2 100644 --- a/eddsa/resharing/messages.go +++ b/eddsa/resharing/messages.go @@ -10,11 +10,11 @@ import ( "crypto/elliptic" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - cmt "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + cmt "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/tss" ) // These messages were generated from Protocol Buffers definitions into eddsa-resharing.pb.go diff --git a/eddsa/resharing/round_1_old_step_1.go b/eddsa/resharing/round_1_old_step_1.go index f14bc869..5b5588cb 100644 --- a/eddsa/resharing/round_1_old_step_1.go +++ b/eddsa/resharing/round_1_old_step_1.go @@ -10,12 +10,12 @@ import ( "errors" "fmt" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/eddsa/keygen" - "github.com/binance-chain/tss-lib/eddsa/signing" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/eddsa/keygen" + "github.com/bnb-chain/tss-lib/eddsa/signing" + "github.com/bnb-chain/tss-lib/tss" ) // round 1 represents round 1 of the keygen part of the EDDSA TSS spec diff --git a/eddsa/resharing/round_2_new_step_1.go b/eddsa/resharing/round_2_new_step_1.go index c323bfb0..2a61d7f4 100644 --- a/eddsa/resharing/round_2_new_step_1.go +++ b/eddsa/resharing/round_2_new_step_1.go @@ -9,7 +9,7 @@ package resharing import ( "errors" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round2) Start() *tss.Error { diff --git a/eddsa/resharing/round_3_old_step_2.go b/eddsa/resharing/round_3_old_step_2.go index f80fe466..21e44106 100644 --- a/eddsa/resharing/round_3_old_step_2.go +++ b/eddsa/resharing/round_3_old_step_2.go @@ -9,7 +9,7 @@ package resharing import ( "errors" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round3) Start() *tss.Error { diff --git a/eddsa/resharing/round_4_new_step_2.go b/eddsa/resharing/round_4_new_step_2.go index e033ad15..18acfe4d 100644 --- a/eddsa/resharing/round_4_new_step_2.go +++ b/eddsa/resharing/round_4_new_step_2.go @@ -11,11 +11,11 @@ import ( "github.com/pkg/errors" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/vss" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round4) Start() *tss.Error { diff --git a/eddsa/resharing/round_5_new_step_3.go b/eddsa/resharing/round_5_new_step_3.go index 44b335c7..69da2c14 100644 --- a/eddsa/resharing/round_5_new_step_3.go +++ b/eddsa/resharing/round_5_new_step_3.go @@ -9,7 +9,7 @@ package resharing import ( "errors" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round5) Start() *tss.Error { diff --git a/eddsa/resharing/rounds.go b/eddsa/resharing/rounds.go index 67a1a3f2..b3376692 100644 --- a/eddsa/resharing/rounds.go +++ b/eddsa/resharing/rounds.go @@ -7,8 +7,8 @@ package resharing import ( - "github.com/binance-chain/tss-lib/eddsa/keygen" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/eddsa/keygen" + "github.com/bnb-chain/tss-lib/tss" ) const ( diff --git a/eddsa/signing/finalize.go b/eddsa/signing/finalize.go index 9463d532..25c28b4c 100644 --- a/eddsa/signing/finalize.go +++ b/eddsa/signing/finalize.go @@ -14,7 +14,7 @@ import ( "github.com/agl/ed25519/edwards25519" "github.com/decred/dcrd/dcrec/edwards/v2" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/tss" ) func (round *finalization) Start() *tss.Error { diff --git a/eddsa/signing/local_party.go b/eddsa/signing/local_party.go index bb001e0f..56aa5f1c 100644 --- a/eddsa/signing/local_party.go +++ b/eddsa/signing/local_party.go @@ -11,11 +11,11 @@ import ( "fmt" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - cmt "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/eddsa/keygen" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + cmt "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/eddsa/keygen" + "github.com/bnb-chain/tss-lib/tss" ) // Implements Party diff --git a/eddsa/signing/local_party_test.go b/eddsa/signing/local_party_test.go index bfc3cc77..35a18eee 100644 --- a/eddsa/signing/local_party_test.go +++ b/eddsa/signing/local_party_test.go @@ -17,10 +17,10 @@ import ( "github.com/ipfs/go-log" "github.com/stretchr/testify/assert" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/eddsa/keygen" - "github.com/binance-chain/tss-lib/test" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/eddsa/keygen" + "github.com/bnb-chain/tss-lib/test" + "github.com/bnb-chain/tss-lib/tss" ) const ( diff --git a/eddsa/signing/messages.go b/eddsa/signing/messages.go index ed45642d..dcfbf734 100644 --- a/eddsa/signing/messages.go +++ b/eddsa/signing/messages.go @@ -10,11 +10,11 @@ import ( "crypto/elliptic" "math/big" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - cmt "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/crypto/schnorr" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + cmt "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/crypto/schnorr" + "github.com/bnb-chain/tss-lib/tss" ) // These messages were generated from Protocol Buffers definitions into eddsa-signing.pb.go diff --git a/eddsa/signing/prepare.go b/eddsa/signing/prepare.go index 9bdb2287..1838b925 100644 --- a/eddsa/signing/prepare.go +++ b/eddsa/signing/prepare.go @@ -11,7 +11,7 @@ import ( "fmt" "math/big" - "github.com/binance-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/common" ) // PrepareForSigning(), Fig. 7 diff --git a/eddsa/signing/round_1.go b/eddsa/signing/round_1.go index c765f630..7af1d807 100644 --- a/eddsa/signing/round_1.go +++ b/eddsa/signing/round_1.go @@ -10,11 +10,11 @@ import ( "errors" "fmt" - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/eddsa/keygen" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/eddsa/keygen" + "github.com/bnb-chain/tss-lib/tss" ) // round 1 represents round 1 of the signing part of the EDDSA TSS spec diff --git a/eddsa/signing/round_2.go b/eddsa/signing/round_2.go index 6e2bf3c6..6aa89657 100644 --- a/eddsa/signing/round_2.go +++ b/eddsa/signing/round_2.go @@ -11,8 +11,8 @@ import ( errors2 "github.com/pkg/errors" - "github.com/binance-chain/tss-lib/crypto/schnorr" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/crypto/schnorr" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round2) Start() *tss.Error { diff --git a/eddsa/signing/round_3.go b/eddsa/signing/round_3.go index 394ce8e5..cbcd103f 100644 --- a/eddsa/signing/round_3.go +++ b/eddsa/signing/round_3.go @@ -12,9 +12,9 @@ import ( "github.com/agl/ed25519/edwards25519" "github.com/pkg/errors" - "github.com/binance-chain/tss-lib/crypto" - "github.com/binance-chain/tss-lib/crypto/commitments" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/tss" ) func (round *round3) Start() *tss.Error { diff --git a/eddsa/signing/rounds.go b/eddsa/signing/rounds.go index 4cb7c91b..57adcd8d 100644 --- a/eddsa/signing/rounds.go +++ b/eddsa/signing/rounds.go @@ -7,9 +7,9 @@ package signing import ( - "github.com/binance-chain/tss-lib/common" - "github.com/binance-chain/tss-lib/eddsa/keygen" - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/eddsa/keygen" + "github.com/bnb-chain/tss-lib/tss" ) const ( diff --git a/eddsa/signing/utils.go b/eddsa/signing/utils.go index 2cda9b6d..ebd77569 100644 --- a/eddsa/signing/utils.go +++ b/eddsa/signing/utils.go @@ -12,7 +12,7 @@ import ( "github.com/agl/ed25519/edwards25519" - "github.com/binance-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/common" ) func encodedBytesToBigInt(s *[32]byte) *big.Int { diff --git a/go.mod b/go.mod index cde7fd5e..843c9cef 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/binance-chain/tss-lib +module github.com/bnb-chain/tss-lib go 1.16 @@ -7,7 +7,6 @@ require ( github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8 github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0 - github.com/golang/protobuf v1.5.0 github.com/hashicorp/go-multierror v1.0.0 github.com/ipfs/go-log v0.0.1 github.com/mattn/go-colorable v0.1.2 // indirect diff --git a/go.sum b/go.sum index d68fe4ac..eee8502d 100644 --- a/go.sum +++ b/go.sum @@ -1,3 +1,4 @@ +bou.ke/monkey v1.0.1 h1:zEMLInw9xvNakzUUPjfS4Ds6jYPqCFx3m7bRmG5NH2U= bou.ke/monkey v1.0.1/go.mod h1:FgHuK96Rv2Nlf+0u1OOVDpCMdsWyOFmeeketDHE7LIg= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/binance-chain/edwards25519 v0.0.0-20200305024217-f36fc4b53d43 h1:Vkf7rtHx8uHx8gDfkQaCdVfc+gfrF9v6sR6xJy7RXNg= @@ -21,10 +22,8 @@ github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMo github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -51,6 +50,7 @@ github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFSt github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= +github.com/otiai10/mint v1.2.4 h1:DxYL0itZyPaR5Z9HILdxSoHx+gNs6Yx+neOGS3IVUk0= github.com/otiai10/mint v1.2.4/go.mod h1:d+b7n/0R3tdyUYYylALXpWQ/kTN+QobSq/4SRGBkR3M= github.com/otiai10/primes v0.0.0-20180210170552-f6d2a1ba97c4 h1:blMAhTXF6uL1+e3eVSajjLT43Cc0U8mU1gcigbbolJM= github.com/otiai10/primes v0.0.0-20180210170552-f6d2a1ba97c4/go.mod h1:UmSP7QeU3XmAdGu5+dnrTJqjBc+IscpVZkQzk473cjM= @@ -73,6 +73,7 @@ golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7 h1:LepdCS8Gf/MVejFIt8lsiexZA golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= diff --git a/test/utils.go b/test/utils.go index d47b719b..104e4d4b 100644 --- a/test/utils.go +++ b/test/utils.go @@ -7,7 +7,7 @@ package test import ( - "github.com/binance-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/tss" ) func SharedPartyUpdater(party tss.Party, msg tss.Message, errCh chan<- *tss.Error) { diff --git a/tss/party.go b/tss/party.go index 5580dbe0..583a59b3 100644 --- a/tss/party.go +++ b/tss/party.go @@ -11,7 +11,7 @@ import ( "fmt" "sync" - "github.com/binance-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/common" ) type Party interface { diff --git a/tss/party_id.go b/tss/party_id.go index 49357d0d..58506641 100644 --- a/tss/party_id.go +++ b/tss/party_id.go @@ -11,7 +11,7 @@ import ( "math/big" "sort" - "github.com/binance-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/common" ) type ( From c0a1d4e4a168a7f7d9b3f1a20d449effab740c65 Mon Sep 17 00:00:00 2001 From: ycen Date: Tue, 17 May 2022 18:56:45 +0800 Subject: [PATCH 34/50] Add checks in dlnproof [TOB-BIN-8] --- crypto/dlnproof/proof.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/crypto/dlnproof/proof.go b/crypto/dlnproof/proof.go index a2cca2b2..772df346 100644 --- a/crypto/dlnproof/proof.go +++ b/crypto/dlnproof/proof.go @@ -28,6 +28,10 @@ type ( } ) +var ( + one = big.NewInt(1) +) + func NewDLNProof(h1, h2, x, p, q, N *big.Int) *Proof { pMulQ := new(big.Int).Mul(p, q) modN, modPQ := common.ModInt(N), common.ModInt(pMulQ) @@ -53,7 +57,33 @@ func (p *Proof) Verify(h1, h2, N *big.Int) bool { if p == nil { return false } + if N.Sign() != 1 { + return false + } modN := common.ModInt(N) + h1_ := new(big.Int).Mod(h1, N) + if h1_.Cmp(one) != 1 || h1_.Cmp(N) != -1 { + return false + } + h2_ := new(big.Int).Mod(h2, N) + if h2_.Cmp(one) != 1 || h2_.Cmp(N) != -1 { + return false + } + if h1_.Cmp(h2_) == 0 { + return false + } + for i := range p.T { + a := new(big.Int).Mod(p.T[i], N) + if a.Cmp(one) != 1 || a.Cmp(N) != -1 { + return false + } + } + for i := range p.Alpha { + a := new(big.Int).Mod(p.Alpha[i], N) + if a.Cmp(one) != 1 || a.Cmp(N) != -1 { + return false + } + } msg := append([]*big.Int{h1, h2, N}, p.Alpha[:]...) c := common.SHA512_256i(msg...) cIBI := new(big.Int) From 939df214e0ce33b44be797354bf134f605fca0ff Mon Sep 17 00:00:00 2001 From: typestring <23285275+typestring@users.noreply.github.com> Date: Wed, 8 Jun 2022 16:58:39 -0300 Subject: [PATCH 35/50] update README.md to match the new version --- README.md | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index b63de2aa..6342c2f8 100644 --- a/README.md +++ b/README.md @@ -43,12 +43,6 @@ The `LocalParty` that you use should be from the `keygen`, `signing` or `reshari ### Setup ```go -// Set up elliptic curve -// use ECDSA, which is used by default -tss.SetCurve(s256k1.S256()) -// or use EdDSA -// tss.SetCurve(edwards.Edwards()) - // When using the keygen party it is recommended that you pre-compute the "safe primes" and Paillier secret beforehand because this can take some time. // This code will generate those parameters using a concurrency limit equal to the number of available CPU cores. preParams, _ := keygen.GeneratePreParams(1 * time.Minute) @@ -62,7 +56,14 @@ parties := tss.SortPartyIDs(getParticipantPartyIDs()) // The `uniqueKey` is a unique identifying key for this peer (such as its p2p public key) as a big.Int. thisParty := tss.NewPartyID(id, moniker, uniqueKey) ctx := tss.NewPeerContext(parties) -params := tss.NewParameters(ctx, thisParty, len(parties), threshold) + +// Select an elliptic curve +// use ECDSA +curve := tss.S256() +// or use EdDSA +// curve := tss.Edwards() + +params := tss.NewParameters(curve, ctx, thisParty, len(parties), threshold) // You should keep a local mapping of `id` strings to `*PartyID` instances so that an incoming message can have its origin party's `*PartyID` recovered for passing to `UpdateFromBytes` (see below) partyIDMap := make(map[string]*PartyID) From a9f355410289af82196a0e7a5ed6cdb1d18cf975 Mon Sep 17 00:00:00 2001 From: Piotr Dyraga Date: Mon, 15 Aug 2022 14:14:36 +0200 Subject: [PATCH 36/50] Allow to stop pre-parameters generator with a context Generating DKG pre-parameters is a computationally expensive operation. As `GeneratePreParams` documentation explains, it is recommended to do it out of band. Keep ECDSA (TBTC) client has a pre-parameters pool from which the DKG process pulls pre-parameters to do not have the entire group wait with kicking off DKG until pre-parameters are generated. This approach was sufficient for TBTC v1 when signing groups were 3-of-3. For TBTC v2, we need much larger signing groups (51-of-100) and for clients having multiple seats in the signing group, generating multiple pre-parameters in a row eliminates other processes run by the client from the access to the CPU. To fix this problem, we plan to run pre-parameters generator only when no other processes are currently executed by the client. That is, when the client would normally be idle, it will keep generating pre-parameters and when the client starts a protocol execution (e.g. DKG), pre-parameters generation should be stopped. GeneratePreParams allows specifying a timeout which is really helpful but is not enough in this case. We want to stop the generator immediately when some protocol is about to start. To achieve it, the code has been refactored to accept a context as a parameter of all long-running generator functions. The context can be canceled or can be constructed in such a way that it times out after a certain time. To achieve backward compatibility, GeneratePreParams signature does not change and a new function accepting the context GeneratePreParamsWithContext has been introduced. --- common/safe_prime.go | 25 +++++++-------- common/safe_prime_test.go | 5 ++- crypto/mta/range_proof_test.go | 6 +++- crypto/mta/share_protocol_test.go | 11 +++++-- crypto/paillier/paillier.go | 6 ++-- crypto/paillier/paillier_test.go | 7 +++- ecdsa/keygen/prepare.go | 16 ++++++++-- ecdsa/keygen/prepare_test.go | 53 +++++++++++++++++++++++++++++++ 8 files changed, 105 insertions(+), 24 deletions(-) create mode 100644 ecdsa/keygen/prepare_test.go diff --git a/common/safe_prime.go b/common/safe_prime.go index 6e94ea68..fad2d1f1 100644 --- a/common/safe_prime.go +++ b/common/safe_prime.go @@ -15,7 +15,6 @@ import ( "math/big" "sync" "sync/atomic" - "time" ) const ( @@ -96,10 +95,15 @@ var smallPrimes = []uint8{ // operations. var smallPrimesProduct = new(big.Int).SetUint64(16294579238595022365) +// ErrGeneratorCancelled is an error returned from GetRandomSafePrimesConcurrent +// when the work of the generator has been cancelled as a result of the context +// being done (cancellation or timeout). +var ErrGeneratorCancelled = fmt.Errorf("generator work cancelled") + // GetRandomSafePrimesConcurrent tries to find safe primes concurrently. // The returned results are safe primes `p` and prime `q` such that `p=2q+1`. // Concurrency level can be controlled with the `concurrencyLevel` parameter. -// If a safe prime could not be found in the specified `timeout`, the error +// If a safe prime could not be found before the context is done, the error // is returned. Also, if at least one search process failed, error is returned // as well. // @@ -121,7 +125,7 @@ var smallPrimesProduct = new(big.Int).SetUint64(16294579238595022365) // This function generates safe primes of at least 6 `bitLen`. For every // generated safe prime, the two most significant bits are always set to `1` // - we don't want the generated number to be too small. -func GetRandomSafePrimesConcurrent(bitLen, numPrimes int, timeout time.Duration, concurrency int) ([]*GermainSafePrime, error) { +func GetRandomSafePrimesConcurrent(ctx context.Context, bitLen, numPrimes int, concurrency int) ([]*GermainSafePrime, error) { if bitLen < 6 { return nil, errors.New("safe prime size must be at least 6 bits") } @@ -139,35 +143,28 @@ func GetRandomSafePrimesConcurrent(bitLen, numPrimes int, timeout time.Duration, defer close(errCh) defer waitGroup.Wait() - ctx, cancel := context.WithCancel(context.Background()) + generatorCtx, cancelGeneratorCtx := context.WithCancel(ctx) + defer cancelGeneratorCtx() for i := 0; i < concurrency; i++ { waitGroup.Add(1) runGenPrimeRoutine( - ctx, primeCh, errCh, waitGroup, rand.Reader, bitLen, + generatorCtx, primeCh, errCh, waitGroup, rand.Reader, bitLen, ) } - // Cancel after the specified timeout. - go func() { - time.Sleep(timeout) - cancel() - }() - needed := int32(numPrimes) for { select { case result := <-primeCh: primes = append(primes, result) if atomic.AddInt32(&needed, -1) <= 0 { - cancel() return primes[:numPrimes], nil } case err := <-errCh: - cancel() return nil, err case <-ctx.Done(): - return nil, fmt.Errorf("generator timed out after %v", timeout) + return nil, ErrGeneratorCancelled } } } diff --git a/common/safe_prime_test.go b/common/safe_prime_test.go index f2042e86..083c736b 100644 --- a/common/safe_prime_test.go +++ b/common/safe_prime_test.go @@ -7,6 +7,7 @@ package common import ( + "context" "math/big" "runtime" "testing" @@ -42,7 +43,9 @@ func Test_Validate_Bad(t *testing.T) { } func TestGetRandomGermainPrimeConcurrent(t *testing.T) { - sgps, err := GetRandomSafePrimesConcurrent(1024, 2, 20*time.Minute, runtime.NumCPU()) + ctx, cancel := context.WithTimeout(context.Background(), 20*time.Minute) + defer cancel() + sgps, err := GetRandomSafePrimesConcurrent(ctx, 1024, 2, runtime.NumCPU()) assert.NoError(t, err) assert.Equal(t, 2, len(sgps)) for _, sgp := range sgps { diff --git a/crypto/mta/range_proof_test.go b/crypto/mta/range_proof_test.go index d8be6983..b8cac1e3 100644 --- a/crypto/mta/range_proof_test.go +++ b/crypto/mta/range_proof_test.go @@ -7,6 +7,7 @@ package mta import ( + "context" "math/big" "testing" "time" @@ -27,7 +28,10 @@ const ( func TestProveRangeAlice(t *testing.T) { q := tss.EC().Params().N - sk, pk, err := paillier.GenerateKeyPair(testPaillierKeyLength, 10*time.Minute) + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute) + defer cancel() + + sk, pk, err := paillier.GenerateKeyPair(ctx, testPaillierKeyLength) assert.NoError(t, err) m := common.GetRandomPositiveInt(q) diff --git a/crypto/mta/share_protocol_test.go b/crypto/mta/share_protocol_test.go index b612a8b6..313163e1 100644 --- a/crypto/mta/share_protocol_test.go +++ b/crypto/mta/share_protocol_test.go @@ -7,6 +7,7 @@ package mta import ( + "context" "math/big" "testing" "time" @@ -28,7 +29,10 @@ const ( func TestShareProtocol(t *testing.T) { q := tss.EC().Params().N - sk, pk, err := paillier.GenerateKeyPair(testPaillierKeyLength, 10*time.Minute) + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute) + defer cancel() + + sk, pk, err := paillier.GenerateKeyPair(ctx, testPaillierKeyLength) assert.NoError(t, err) a := common.GetRandomPositiveInt(q) @@ -58,7 +62,10 @@ func TestShareProtocol(t *testing.T) { func TestShareProtocolWC(t *testing.T) { q := tss.EC().Params().N - sk, pk, err := paillier.GenerateKeyPair(testPaillierKeyLength, 10*time.Minute) + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute) + defer cancel() + + sk, pk, err := paillier.GenerateKeyPair(ctx, testPaillierKeyLength) assert.NoError(t, err) a := common.GetRandomPositiveInt(q) diff --git a/crypto/paillier/paillier.go b/crypto/paillier/paillier.go index 7eb80f2c..0b4325bf 100644 --- a/crypto/paillier/paillier.go +++ b/crypto/paillier/paillier.go @@ -16,13 +16,13 @@ package paillier import ( + "context" "errors" "fmt" gmath "math" "math/big" "runtime" "strconv" - "time" "github.com/otiai10/primes" @@ -65,7 +65,7 @@ func init() { } // len is the length of the modulus (each prime = len / 2) -func GenerateKeyPair(modulusBitLen int, timeout time.Duration, optionalConcurrency ...int) (privateKey *PrivateKey, publicKey *PublicKey, err error) { +func GenerateKeyPair(ctx context.Context, modulusBitLen int, optionalConcurrency ...int) (privateKey *PrivateKey, publicKey *PublicKey, err error) { var concurrency int if 0 < len(optionalConcurrency) { if 1 < len(optionalConcurrency) { @@ -81,7 +81,7 @@ func GenerateKeyPair(modulusBitLen int, timeout time.Duration, optionalConcurren { tmp := new(big.Int) for { - sgps, err := common.GetRandomSafePrimesConcurrent(modulusBitLen/2, 2, timeout, concurrency) + sgps, err := common.GetRandomSafePrimesConcurrent(ctx, modulusBitLen/2, 2, concurrency) if err != nil { return nil, nil, err } diff --git a/crypto/paillier/paillier_test.go b/crypto/paillier/paillier_test.go index 0abf7f53..6d9cc53b 100644 --- a/crypto/paillier/paillier_test.go +++ b/crypto/paillier/paillier_test.go @@ -7,6 +7,7 @@ package paillier_test import ( + "context" "math/big" "testing" "time" @@ -33,8 +34,12 @@ func setUp(t *testing.T) { if privateKey != nil && publicKey != nil { return } + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute) + defer cancel() + var err error - privateKey, publicKey, err = GenerateKeyPair(testPaillierKeyLength, 10*time.Minute) + privateKey, publicKey, err = GenerateKeyPair(ctx, testPaillierKeyLength) assert.NoError(t, err) } diff --git a/ecdsa/keygen/prepare.go b/ecdsa/keygen/prepare.go index 919b0e00..6076e58e 100644 --- a/ecdsa/keygen/prepare.go +++ b/ecdsa/keygen/prepare.go @@ -7,6 +7,7 @@ package keygen import ( + "context" "errors" "math/big" "runtime" @@ -28,7 +29,18 @@ const ( // GeneratePreParams finds two safe primes and computes the Paillier secret required for the protocol. // This can be a time consuming process so it is recommended to do it out-of-band. // If not specified, a concurrency value equal to the number of available CPU cores will be used. +// If pre-parameters could not be generated before the timeout, an error is returned. func GeneratePreParams(timeout time.Duration, optionalConcurrency ...int) (*LocalPreParams, error) { + ctx, cancel := context.WithTimeout(context.Background(), timeout) + defer cancel() + return GeneratePreParamsWithContext(ctx, optionalConcurrency...) +} + +// GeneratePreParams finds two safe primes and computes the Paillier secret required for the protocol. +// This can be a time consuming process so it is recommended to do it out-of-band. +// If not specified, a concurrency value equal to the number of available CPU cores will be used. +// If pre-parameters could not be generated before the context is done, an error is returned. +func GeneratePreParamsWithContext(ctx context.Context, optionalConcurrency ...int) (*LocalPreParams, error) { var concurrency int if 0 < len(optionalConcurrency) { if 1 < len(optionalConcurrency) { @@ -51,7 +63,7 @@ func GeneratePreParams(timeout time.Duration, optionalConcurrency ...int) (*Loca common.Logger.Info("generating the Paillier modulus, please wait...") start := time.Now() // more concurrency weight is assigned here because the paillier primes have a requirement of having "large" P-Q - PiPaillierSk, _, err := paillier.GenerateKeyPair(paillierModulusLen, timeout, concurrency*2) + PiPaillierSk, _, err := paillier.GenerateKeyPair(ctx, paillierModulusLen, concurrency*2) if err != nil { ch <- nil return @@ -65,7 +77,7 @@ func GeneratePreParams(timeout time.Duration, optionalConcurrency ...int) (*Loca var err error common.Logger.Info("generating the safe primes for the signing proofs, please wait...") start := time.Now() - sgps, err := common.GetRandomSafePrimesConcurrent(safePrimeBitLen, 2, timeout, concurrency) + sgps, err := common.GetRandomSafePrimesConcurrent(ctx, safePrimeBitLen, 2, concurrency) if err != nil { ch <- nil return diff --git a/ecdsa/keygen/prepare_test.go b/ecdsa/keygen/prepare_test.go new file mode 100644 index 00000000..d1fea0bb --- /dev/null +++ b/ecdsa/keygen/prepare_test.go @@ -0,0 +1,53 @@ +// Copyright © 2019 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + +package keygen + +import ( + "context" + "testing" + "time" + + "github.com/stretchr/testify/assert" +) + +func TestGeneratePreParamsTimeout(t *testing.T) { + start := time.Now() + preParams, err := GeneratePreParams(5*time.Millisecond, 1) + + assert.Nil(t, preParams) + assert.NotNil(t, err) + assert.WithinDuration(t, start, time.Now(), 10*time.Millisecond) +} + +func TestGeneratePreParamsWithContextTimeout(t *testing.T) { + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Millisecond) + defer cancel() + + start := time.Now() + preParams, err := GeneratePreParamsWithContext(ctx, 1) + + assert.Nil(t, preParams) + assert.NotNil(t, err) + assert.WithinDuration(t, start, time.Now(), 10*time.Millisecond) +} + +func TestGenerateWithContext(t *testing.T) { + ctx, cancel := context.WithTimeout(context.Background(), 20*time.Minute) + defer cancel() + + preParams, err := GeneratePreParamsWithContext(ctx, 1) + assert.NotNil(t, preParams) + assert.Nil(t, err) + assert.NotNil(t, preParams.PaillierSK) + assert.NotNil(t, preParams.NTildei) + assert.NotNil(t, preParams.H1i) + assert.NotNil(t, preParams.H2i) + assert.NotNil(t, preParams.Alpha) + assert.NotNil(t, preParams.Beta) + assert.NotNil(t, preParams.P) + assert.NotNil(t, preParams.Q) +} From 4f9f8532ba74424a1f305131b7965472d9d52b95 Mon Sep 17 00:00:00 2001 From: Piotr Dyraga Date: Mon, 15 Aug 2022 16:42:37 +0200 Subject: [PATCH 37/50] Increased duration delta to 1s in prepare_test.go 10ms delta was too aggresive - it was fine for local dev environment on Apple M1 but CI builds based on GitHub Actions kept failing. Increased to 1s. --- ecdsa/keygen/prepare_test.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ecdsa/keygen/prepare_test.go b/ecdsa/keygen/prepare_test.go index d1fea0bb..f00e8e85 100644 --- a/ecdsa/keygen/prepare_test.go +++ b/ecdsa/keygen/prepare_test.go @@ -20,7 +20,7 @@ func TestGeneratePreParamsTimeout(t *testing.T) { assert.Nil(t, preParams) assert.NotNil(t, err) - assert.WithinDuration(t, start, time.Now(), 10*time.Millisecond) + assert.WithinDuration(t, start, time.Now(), 1*time.Second) } func TestGeneratePreParamsWithContextTimeout(t *testing.T) { @@ -32,7 +32,7 @@ func TestGeneratePreParamsWithContextTimeout(t *testing.T) { assert.Nil(t, preParams) assert.NotNil(t, err) - assert.WithinDuration(t, start, time.Now(), 10*time.Millisecond) + assert.WithinDuration(t, start, time.Now(), 1*time.Second) } func TestGenerateWithContext(t *testing.T) { From bde1ac31c2ce5a82a732864b5b4d031a7c38432e Mon Sep 17 00:00:00 2001 From: ycen <44356973+yycen@users.noreply.github.com> Date: Thu, 1 Sep 2022 21:39:59 +0800 Subject: [PATCH 38/50] Add check in mta_proof (#205) * Add check in mta_proof * go fmt on range_proof.go This reverts commit 4871684fe85f253dc266aa5957c0daa15a0da181. --- crypto/mta/proofs.go | 14 ++++++++++++++ crypto/mta/range_proof.go | 1 + 2 files changed, 15 insertions(+) diff --git a/crypto/mta/proofs.go b/crypto/mta/proofs.go index 1ae4d51e..1656e49b 100644 --- a/crypto/mta/proofs.go +++ b/crypto/mta/proofs.go @@ -194,6 +194,20 @@ func (pf *ProofBobWC) Verify(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, q3 := new(big.Int).Mul(q, q) q3 = new(big.Int).Mul(q, q3) + gcd := big.NewInt(0) + if pf.S.Cmp(zero) == 0 { + return false + } + if gcd.GCD(nil, nil, pf.S, pk.N).Cmp(one) != 0 { + return false + } + if pf.V.Cmp(zero) == 0 { + return false + } + if gcd.GCD(nil, nil, pf.V, pk.N).Cmp(one) != 0 { + return false + } + // 3. if pf.S1.Cmp(q3) > 0 { return false diff --git a/crypto/mta/range_proof.go b/crypto/mta/range_proof.go index 1780f8e3..e962fdc6 100644 --- a/crypto/mta/range_proof.go +++ b/crypto/mta/range_proof.go @@ -22,6 +22,7 @@ const ( var ( zero = big.NewInt(0) + one = big.NewInt(1) ) type ( From cbfa6cf63f18f471429eaab0a5f51cf72b7e9df8 Mon Sep 17 00:00:00 2001 From: Pablo Lopez Date: Fri, 9 Sep 2022 16:56:26 +0300 Subject: [PATCH 39/50] Feature/hd cherry pick (#195) * Cherrypick child key derivation (#140) * Cherrypick child_key_derivation from SwingbyProtocol https://github.com/SwingbyProtocol/tss-lib/pull/6/files#diff-e663957d1112b8c89bb7a782fe1cebe0d5e4d84a17861ae5af5cc0b59d1dbf56 * Add serialization to child key derivation add test case from github.com/btcsuite/hdkeychain * Making ec as parameter in key_derivation_util * Add version string to extendedkey, to comply with BIP32 * specify curve in NewExtendedKey * pass curve in DeriveChildKey * amend the HD cherry pick not to break the existing API of NewLocalParty * FillBytes not available in go 1.13 Fix test using FillBytes Co-authored-by: ycen <44356973+yycen@users.noreply.github.com> Co-authored-by: FitzLu --- crypto/ckd/child_key_derivation.go | 257 ++++++++++++++++++++++++ crypto/ckd/child_key_derivation_test.go | 132 ++++++++++++ crypto/ecpoint.go | 9 + ecdsa/signing/key_derivation_util.go | 59 ++++++ ecdsa/signing/local_party.go | 13 ++ ecdsa/signing/local_party_test.go | 125 ++++++++++++ ecdsa/signing/round_1.go | 9 + go.mod | 2 + go.sum | 2 + 9 files changed, 608 insertions(+) create mode 100644 crypto/ckd/child_key_derivation.go create mode 100644 crypto/ckd/child_key_derivation_test.go create mode 100644 ecdsa/signing/key_derivation_util.go diff --git a/crypto/ckd/child_key_derivation.go b/crypto/ckd/child_key_derivation.go new file mode 100644 index 00000000..6d188d3a --- /dev/null +++ b/crypto/ckd/child_key_derivation.go @@ -0,0 +1,257 @@ +// Copyright © Swingby + +package ckd + +import ( + "bytes" + "crypto/ecdsa" + "crypto/elliptic" + "crypto/hmac" + "crypto/sha256" + "crypto/sha512" + "encoding/binary" + "errors" + "hash" + "math/big" + + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/btcsuite/btcd/btcec" + "github.com/btcsuite/btcutil/base58" + "golang.org/x/crypto/ripemd160" +) + +type ExtendedKey struct { + ecdsa.PublicKey + Depth uint8 + ChildIndex uint32 + ChainCode []byte // 32 bytes + ParentFP []byte // parent fingerprint + Version []byte +} + +// For more information about child key derivation see https://github.com/binance-chain/tss-lib/issues/104 +// https://github.com/bitcoin/bips/blob/master/bip-0032.mediawiki . +// The functions below do not implement the full BIP-32 specification. As mentioned in the Jira ticket above, +// we only use non-hardened derived keys. + +const ( + + // HardenedKeyStart hardened key starts. + HardenedKeyStart = 0x80000000 // 2^31 + + // max Depth + maxDepth = 1<<8 - 1 + + PubKeyBytesLenCompressed = 33 + + pubKeyCompressed byte = 0x2 + + serializedKeyLen = 78 + + // MinSeedBytes is the minimum number of bytes allowed for a seed to + // a master node. + MinSeedBytes = 16 // 128 bits + + // MaxSeedBytes is the maximum number of bytes allowed for a seed to + // a master node. + MaxSeedBytes = 64 // 512 bits +) + +// Extended public key serialization, defined in BIP32 +func (k *ExtendedKey) String() string { + // version(4) || depth(1) || parentFP (4) || childinde(4) || chaincode (32) || key(33) || checksum(4) + var childNumBytes [4]byte + binary.BigEndian.PutUint32(childNumBytes[:], k.ChildIndex) + + serializedBytes := make([]byte, 0, serializedKeyLen+4) + serializedBytes = append(serializedBytes, k.Version...) + serializedBytes = append(serializedBytes, k.Depth) + serializedBytes = append(serializedBytes, k.ParentFP...) + serializedBytes = append(serializedBytes, childNumBytes[:]...) + serializedBytes = append(serializedBytes, k.ChainCode...) + pubKeyBytes := serializeCompressed(k.PublicKey.X, k.PublicKey.Y) + serializedBytes = append(serializedBytes, pubKeyBytes...) + + checkSum := doubleHashB(serializedBytes)[:4] + serializedBytes = append(serializedBytes, checkSum...) + return base58.Encode(serializedBytes) +} + +// NewExtendedKeyFromString returns a new extended key from a base58-encoded extended key +func NewExtendedKeyFromString(key string, curve elliptic.Curve) (*ExtendedKey, error) { + // version(4) || depth(1) || parentFP (4) || childinde(4) || chaincode (32) || key(33) || checksum(4) + + decoded := base58.Decode(key) + if len(decoded) != serializedKeyLen+4 { + return nil, errors.New("invalid extended key") + } + + // Split the payload and checksum up and ensure the checksum matches. + payload := decoded[:len(decoded)-4] + checkSum := decoded[len(decoded)-4:] + expectedCheckSum := doubleHashB(payload)[:4] + if !bytes.Equal(checkSum, expectedCheckSum) { + return nil, errors.New("invalid extended key") + } + + // Deserialize each of the payload fields. + version := payload[:4] + depth := payload[4:5][0] + parentFP := payload[5:9] + childNum := binary.BigEndian.Uint32(payload[9:13]) + chainCode := payload[13:45] + keyData := payload[45:78] + + var pubKey ecdsa.PublicKey + + if c, ok := curve.(*btcec.KoblitzCurve); ok { + // Ensure the public key parses correctly and is actually on the + // secp256k1 curve. + pk, err := btcec.ParsePubKey(keyData, c) + if err != nil { + return nil, err + } + pubKey = ecdsa.PublicKey(*pk) + } else { + px, py := elliptic.Unmarshal(curve, keyData) + pubKey = ecdsa.PublicKey{ + Curve: curve, + X: px, + Y: py, + } + } + + return &ExtendedKey{ + PublicKey: pubKey, + Depth: depth, + ChildIndex: childNum, + ChainCode: chainCode, + ParentFP: parentFP, + Version: version, + }, nil +} + +func doubleHashB(b []byte) []byte { + first := sha256.Sum256(b) + second := sha256.Sum256(first[:]) + return second[:] +} + +func calcHash(buf []byte, hasher hash.Hash) []byte { + hasher.Write(buf) + return hasher.Sum(nil) +} + +func hash160(buf []byte) []byte { + return calcHash(calcHash(buf, sha256.New()), ripemd160.New()) +} + +func isOdd(a *big.Int) bool { + return a.Bit(0) == 1 +} + +// PaddedAppend append src to dst, if less than size padding 0 at start +func paddedAppend(dst []byte, srcPaddedSize int, src []byte) []byte { + return append(dst, paddedBytes(srcPaddedSize, src)...) +} + +// PaddedBytes padding byte array to size length +func paddedBytes(size int, src []byte) []byte { + offset := size - len(src) + tmp := src + if offset > 0 { + tmp = make([]byte, size) + copy(tmp[offset:], src) + } + return tmp +} + +// SerializeCompressed serializes a public key 33-byte compressed format +func serializeCompressed(publicKeyX *big.Int, publicKeyY *big.Int) []byte { + b := make([]byte, 0, PubKeyBytesLenCompressed) + format := pubKeyCompressed + if isOdd(publicKeyY) { + format |= 0x1 + } + b = append(b, format) + return paddedAppend(b, 32, publicKeyX.Bytes()) +} + +func DeriveChildKeyFromHierarchy(indicesHierarchy []uint32, pk *ExtendedKey, mod *big.Int, curve elliptic.Curve) (*big.Int, *ExtendedKey, error) { + var k = pk + var err error + var childKey *ExtendedKey + mod_ := common.ModInt(mod) + ilNum := big.NewInt(0) + for index := range indicesHierarchy { + ilNumOld := ilNum + ilNum, childKey, err = DeriveChildKey(indicesHierarchy[index], k, curve) + if err != nil { + return nil, nil, err + } + k = childKey + ilNum = mod_.Add(ilNum, ilNumOld) + } + return ilNum, k, nil +} + +// DeriveChildKey Derive a child key from the given parent key. The function returns "IL" ("I left"), per BIP-32 spec. It also +// returns the derived child key. +func DeriveChildKey(index uint32, pk *ExtendedKey, curve elliptic.Curve) (*big.Int, *ExtendedKey, error) { + if index >= HardenedKeyStart { + return nil, nil, errors.New("the index must be non-hardened") + } + if pk.Depth == maxDepth { + return nil, nil, errors.New("cannot derive key beyond max depth") + } + + cryptoPk, err := crypto.NewECPoint(curve, pk.X, pk.Y) + if err != nil { + common.Logger.Error("error getting pubkey from extendedkey") + return nil, nil, err + } + + pkPublicKeyBytes := serializeCompressed(pk.X, pk.Y) + + data := make([]byte, 37) + copy(data, pkPublicKeyBytes) + binary.BigEndian.PutUint32(data[33:], index) + + // I = HMAC-SHA512(Key = chainCode, Data=data) + hmac512 := hmac.New(sha512.New, pk.ChainCode) + hmac512.Write(data) + ilr := hmac512.Sum(nil) + il := ilr[:32] + childChainCode := ilr[32:] + ilNum := new(big.Int).SetBytes(il) + + if ilNum.Cmp(curve.Params().N) >= 0 || ilNum.Sign() == 0 { + // falling outside of the valid range for curve private keys + err = errors.New("invalid derived key") + common.Logger.Error("error deriving child key") + return nil, nil, err + } + + deltaG := crypto.ScalarBaseMult(curve, ilNum) + if deltaG.X().Sign() == 0 || deltaG.Y().Sign() == 0 { + err = errors.New("invalid child") + common.Logger.Error("error invalid child") + return nil, nil, err + } + childCryptoPk, err := cryptoPk.Add(deltaG) + if err != nil { + common.Logger.Error("error adding delta G to parent key") + return nil, nil, err + } + + childPk := &ExtendedKey{ + PublicKey: *childCryptoPk.ToECDSAPubKey(), + Depth: pk.Depth + 1, + ChildIndex: index, + ChainCode: childChainCode, + ParentFP: hash160(pkPublicKeyBytes)[:4], + Version: pk.Version, + } + return ilNum, childPk, nil +} diff --git a/crypto/ckd/child_key_derivation_test.go b/crypto/ckd/child_key_derivation_test.go new file mode 100644 index 00000000..a065b9d9 --- /dev/null +++ b/crypto/ckd/child_key_derivation_test.go @@ -0,0 +1,132 @@ +// Copyright © 2019 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + +package ckd_test + +import ( + "testing" + + . "github.com/bnb-chain/tss-lib/crypto/ckd" + "github.com/btcsuite/btcd/btcec" +) + +func TestPublicDerivation(t *testing.T) { + // port from https://github.com/btcsuite/btcutil/blob/master/hdkeychain/extendedkey_test.go + // The public extended keys for test vectors in [BIP32]. + testVec1MasterPubKey := "xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8" + testVec2MasterPubKey := "xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8ED9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB" + + tests := []struct { + name string + master string + path []uint32 + wantPub string + }{ + // Test vector 1 + { + name: "test vector 1 chain m", + master: testVec1MasterPubKey, + path: []uint32{}, + wantPub: "xpub661MyMwAqRbcFtXgS5sYJABqqG9YLmC4Q1Rdap9gSE8NqtwybGhePY2gZ29ESFjqJoCu1Rupje8YtGqsefD265TMg7usUDFdp6W1EGMcet8", + }, + { + name: "test vector 1 chain m/0", + master: testVec1MasterPubKey, + path: []uint32{0}, + wantPub: "xpub68Gmy5EVb2BdFbj2LpWrk1M7obNuaPTpT5oh9QCCo5sRfqSHVYWex97WpDZzszdzHzxXDAzPLVSwybe4uPYkSk4G3gnrPqqkV9RyNzAcNJ1", + }, + { + name: "test vector 1 chain m/0/1", + master: testVec1MasterPubKey, + path: []uint32{0, 1}, + wantPub: "xpub6AvUGrnEpfvJBbfx7sQ89Q8hEMPM65UteqEX4yUbUiES2jHfjexmfJoxCGSwFMZiPBaKQT1RiKWrKfuDV4vpgVs4Xn8PpPTR2i79rwHd4Zr", + }, + { + name: "test vector 1 chain m/0/1/2", + master: testVec1MasterPubKey, + path: []uint32{0, 1, 2}, + wantPub: "xpub6BqyndF6rhZqmgktFCBcapkwubGxPqoAZtQaYewJHXVKZcLdnqBVC8N6f6FSHWUghjuTLeubWyQWfJdk2G3tGgvgj3qngo4vLTnnSjAZckv", + }, + { + name: "test vector 1 chain m/0/1/2/2", + master: testVec1MasterPubKey, + path: []uint32{0, 1, 2, 2}, + wantPub: "xpub6FHUhLbYYkgFQiFrDiXRfQFXBB2msCxKTsNyAExi6keFxQ8sHfwpogY3p3s1ePSpUqLNYks5T6a3JqpCGszt4kxbyq7tUoFP5c8KWyiDtPp", + }, + { + name: "test vector 1 chain m/0/1/2/2/1000000000", + master: testVec1MasterPubKey, + path: []uint32{0, 1, 2, 2, 1000000000}, + wantPub: "xpub6GX3zWVgSgPc5tgjE6ogT9nfwSADD3tdsxpzd7jJoJMqSY12Be6VQEFwDCp6wAQoZsH2iq5nNocHEaVDxBcobPrkZCjYW3QUmoDYzMFBDu9", + }, + + // Test vector 2 + { + name: "test vector 2 chain m", + master: testVec2MasterPubKey, + path: []uint32{}, + wantPub: "xpub661MyMwAqRbcFW31YEwpkMuc5THy2PSt5bDMsktWQcFF8syAmRUapSCGu8ED9W6oDMSgv6Zz8idoc4a6mr8BDzTJY47LJhkJ8UB7WEGuduB", + }, + { + name: "test vector 2 chain m/0", + master: testVec2MasterPubKey, + path: []uint32{0}, + wantPub: "xpub69H7F5d8KSRgmmdJg2KhpAK8SR3DjMwAdkxj3ZuxV27CprR9LgpeyGmXUbC6wb7ERfvrnKZjXoUmmDznezpbZb7ap6r1D3tgFxHmwMkQTPH", + }, + { + name: "test vector 2 chain m/0/2147483647", + master: testVec2MasterPubKey, + path: []uint32{0, 2147483647}, + wantPub: "xpub6ASAVgeWMg4pmutghzHG3BohahjwNwPmy2DgM6W9wGegtPrvNgjBwuZRD7hSDFhYfunq8vDgwG4ah1gVzZysgp3UsKz7VNjCnSUJJ5T4fdD", + }, + { + name: "test vector 2 chain m/0/2147483647/1", + master: testVec2MasterPubKey, + path: []uint32{0, 2147483647, 1}, + wantPub: "xpub6CrnV7NzJy4VdgP5niTpqWJiFXMAca6qBm5Hfsry77SQmN1HGYHnjsZSujoHzdxf7ZNK5UVrmDXFPiEW2ecwHGWMFGUxPC9ARipss9rXd4b", + }, + { + name: "test vector 2 chain m/0/2147483647/1/2147483646", + master: testVec2MasterPubKey, + path: []uint32{0, 2147483647, 1, 2147483646}, + wantPub: "xpub6FL2423qFaWzHCvBndkN9cbkn5cysiUeFq4eb9t9kE88jcmY63tNuLNRzpHPdAM4dUpLhZ7aUm2cJ5zF7KYonf4jAPfRqTMTRBNkQL3Tfta", + }, + { + name: "test vector 2 chain m/0/2147483647/1/2147483646/2", + master: testVec2MasterPubKey, + path: []uint32{0, 2147483647, 1, 2147483646, 2}, + wantPub: "xpub6H7WkJf547AiSwAbX6xsm8Bmq9M9P1Gjequ5SipsjipWmtXSyp4C3uwzewedGEgAMsDy4jEvNTWtxLyqqHY9C12gaBmgUdk2CGmwachwnWK", + }, + } + +tests: + for i, test := range tests { + extKey, err := NewExtendedKeyFromString(test.master, btcec.S256()) + if err != nil { + t.Errorf("NewKeyFromString #%d (%s): unexpected error "+ + "creating extended key: %v", i, test.name, + err) + continue + } + + for _, childNum := range test.path { + var err error + _, extKey, err = DeriveChildKey(childNum, extKey, btcec.S256()) + if err != nil { + t.Errorf("err: %v", err) + continue tests + } + } + + pubStr := extKey.String() + if pubStr != test.wantPub { + t.Errorf("Derive #%d (%s): mismatched serialized "+ + "public extended key -- got: %s, want: %s", i, + test.name, pubStr, test.wantPub) + continue + } + } +} diff --git a/crypto/ecpoint.go b/crypto/ecpoint.go index 26556eaf..879dbf48 100644 --- a/crypto/ecpoint.go +++ b/crypto/ecpoint.go @@ -8,6 +8,7 @@ package crypto import ( "bytes" + "crypto/ecdsa" "crypto/elliptic" "encoding/binary" "encoding/json" @@ -64,6 +65,14 @@ func (p *ECPoint) ScalarMult(k *big.Int) *ECPoint { return newP } +func (p *ECPoint) ToECDSAPubKey() *ecdsa.PublicKey { + return &ecdsa.PublicKey{ + Curve: p.curve, + X: p.X(), + Y: p.Y(), + } +} + func (p *ECPoint) IsOnCurve() bool { return isOnCurve(p.curve, p.coords[0], p.coords[1]) } diff --git a/ecdsa/signing/key_derivation_util.go b/ecdsa/signing/key_derivation_util.go new file mode 100644 index 00000000..e5826a71 --- /dev/null +++ b/ecdsa/signing/key_derivation_util.go @@ -0,0 +1,59 @@ +// Copyright © 2021 Swingby + +package signing + +import ( + "crypto/ecdsa" + "crypto/elliptic" + "math/big" + + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/crypto/ckd" + "github.com/bnb-chain/tss-lib/ecdsa/keygen" + + "github.com/btcsuite/btcd/chaincfg" +) + +func UpdatePublicKeyAndAdjustBigXj(keyDerivationDelta *big.Int, keys []keygen.LocalPartySaveData, extendedChildPk *ecdsa.PublicKey, ec elliptic.Curve) error { + var err error + gDelta := crypto.ScalarBaseMult(ec, keyDerivationDelta) + for k := range keys { + keys[k].ECDSAPub, err = crypto.NewECPoint(ec, extendedChildPk.X, extendedChildPk.Y) + if err != nil { + common.Logger.Errorf("error creating new extended child public key") + return err + } + // Suppose X_j has shamir shares X_j0, X_j1, ..., X_jn + // So X_j + D has shamir shares X_j0 + D, X_j1 + D, ..., X_jn + D + for j := range keys[k].BigXj { + keys[k].BigXj[j], err = keys[k].BigXj[j].Add(gDelta) + if err != nil { + common.Logger.Errorf("error in delta operation") + return err + } + } + } + return nil +} + +func derivingPubkeyFromPath(masterPub *crypto.ECPoint, chainCode []byte, path []uint32, ec elliptic.Curve) (*big.Int, *ckd.ExtendedKey, error) { + // build ecdsa key pair + pk := ecdsa.PublicKey{ + Curve: ec, + X: masterPub.X(), + Y: masterPub.Y(), + } + + net := &chaincfg.MainNetParams + extendedParentPk := &ckd.ExtendedKey{ + PublicKey: pk, + Depth: 0, + ChildIndex: 0, + ChainCode: chainCode[:], + ParentFP: []byte{0x00, 0x00, 0x00, 0x00}, + Version: net.HDPrivateKeyID[:], + } + + return ckd.DeriveChildKeyFromHierarchy(path, extendedParentPk, ec.Params().N, ec) +} diff --git a/ecdsa/signing/local_party.go b/ecdsa/signing/local_party.go index 8c3182ae..ae202590 100644 --- a/ecdsa/signing/local_party.go +++ b/ecdsa/signing/local_party.go @@ -61,6 +61,7 @@ type ( theta, thetaInverse, sigma, + keyDerivationDelta, gamma *big.Int cis []*big.Int bigWs []*crypto.ECPoint @@ -98,6 +99,17 @@ func NewLocalParty( params *tss.Parameters, key keygen.LocalPartySaveData, out chan<- tss.Message, + end chan<- common.SignatureData) tss.Party { + return NewLocalPartyWithKDD(msg, params, key, nil, out, end) +} + +// NewLocalPartyWithKDD returns a party with key derivation delta for HD support +func NewLocalPartyWithKDD( + msg *big.Int, + params *tss.Parameters, + key keygen.LocalPartySaveData, + keyDerivationDelta *big.Int, + out chan<- tss.Message, end chan<- common.SignatureData, ) tss.Party { partyCount := len(params.Parties().IDs()) @@ -122,6 +134,7 @@ func NewLocalParty( p.temp.signRound8Messages = make([]tss.ParsedMessage, partyCount) p.temp.signRound9Messages = make([]tss.ParsedMessage, partyCount) // temp data init + p.temp.keyDerivationDelta = keyDerivationDelta p.temp.m = msg p.temp.cis = make([]*big.Int, partyCount) p.temp.bigWs = make([]*crypto.ECPoint, partyCount) diff --git a/ecdsa/signing/local_party_test.go b/ecdsa/signing/local_party_test.go index 74b80eb6..51b83873 100644 --- a/ecdsa/signing/local_party_test.go +++ b/ecdsa/signing/local_party_test.go @@ -14,6 +14,7 @@ import ( "sync/atomic" "testing" + "github.com/btcsuite/btcd/btcec" "github.com/ipfs/go-log" "github.com/stretchr/testify/assert" @@ -130,6 +131,114 @@ signing: } } +func TestE2EWithHDKeyDerivation(t *testing.T) { + setUp("info") + threshold := testThreshold + + // PHASE: load keygen fixtures + keys, signPIDs, err := keygen.LoadKeygenTestFixturesRandomSet(testThreshold+1, testParticipants) + assert.NoError(t, err, "should load keygen fixtures") + assert.Equal(t, testThreshold+1, len(keys)) + assert.Equal(t, testThreshold+1, len(signPIDs)) + + chainCode := make([]byte, 32) + max32b := new(big.Int).Lsh(new(big.Int).SetUint64(1), 256) + max32b = new(big.Int).Sub(max32b, new(big.Int).SetUint64(1)) + fillBytes(common.GetRandomPositiveInt(max32b), chainCode) + + il, extendedChildPk, errorDerivation := derivingPubkeyFromPath(keys[0].ECDSAPub, chainCode, []uint32{12, 209, 3}, btcec.S256()) + assert.NoErrorf(t, errorDerivation, "there should not be an error deriving the child public key") + + keyDerivationDelta := il + + err = UpdatePublicKeyAndAdjustBigXj(keyDerivationDelta, keys, &extendedChildPk.PublicKey, btcec.S256()) + assert.NoErrorf(t, err, "there should not be an error setting the derived keys") + + // PHASE: signing + // use a shuffled selection of the list of parties for this test + p2pCtx := tss.NewPeerContext(signPIDs) + parties := make([]*LocalParty, 0, len(signPIDs)) + + errCh := make(chan *tss.Error, len(signPIDs)) + outCh := make(chan tss.Message, len(signPIDs)) + endCh := make(chan common.SignatureData, len(signPIDs)) + + updater := test.SharedPartyUpdater + + // init the parties + for i := 0; i < len(signPIDs); i++ { + params := tss.NewParameters(tss.S256(), p2pCtx, signPIDs[i], len(signPIDs), threshold) + + P := NewLocalPartyWithKDD(big.NewInt(42), params, keys[i], keyDerivationDelta, outCh, endCh).(*LocalParty) + parties = append(parties, P) + go func(P *LocalParty) { + if err := P.Start(); err != nil { + errCh <- err + } + }(P) + } + + var ended int32 +signing: + for { + select { + case err := <-errCh: + common.Logger.Errorf("Error: %s", err) + assert.FailNow(t, err.Error()) + break signing + + case msg := <-outCh: + dest := msg.GetTo() + if dest == nil { + for _, P := range parties { + if P.PartyID().Index == msg.GetFrom().Index { + continue + } + go updater(P, msg, errCh) + } + } else { + if dest[0].Index == msg.GetFrom().Index { + t.Fatalf("party %d tried to send a message to itself (%d)", dest[0].Index, msg.GetFrom().Index) + } + go updater(parties[dest[0].Index], msg, errCh) + } + + case <-endCh: + atomic.AddInt32(&ended, 1) + if atomic.LoadInt32(&ended) == int32(len(signPIDs)) { + t.Logf("Done. Received signature data from %d participants", ended) + R := parties[0].temp.bigR + r := parties[0].temp.rx + fmt.Printf("sign result: R(%s, %s), r=%s\n", R.X().String(), R.Y().String(), r.String()) + + modN := common.ModInt(tss.S256().Params().N) + + // BEGIN check s correctness + sumS := big.NewInt(0) + for _, p := range parties { + sumS = modN.Add(sumS, p.temp.si) + } + fmt.Printf("S: %s\n", sumS.String()) + // END check s correctness + + // BEGIN ECDSA verify + pkX, pkY := keys[0].ECDSAPub.X(), keys[0].ECDSAPub.Y() + pk := ecdsa.PublicKey{ + Curve: tss.EC(), + X: pkX, + Y: pkY, + } + ok := ecdsa.Verify(&pk, big.NewInt(42).Bytes(), R.X(), sumS) + assert.True(t, ok, "ecdsa verify must pass") + t.Log("ECDSA signing test done.") + // END ECDSA verify + + break signing + } + } + } +} + func TestFillTo32BytesInPlace(t *testing.T) { s := big.NewInt(123456789) normalizedS := padToLengthBytesInPlace(s.Bytes(), 32) @@ -137,3 +246,19 @@ func TestFillTo32BytesInPlace(t *testing.T) { assert.Equal(t, 32, len(normalizedS)) assert.NotEqual(t, 32, len(s.Bytes())) } + +func fillBytes(x *big.Int, buf []byte) []byte { + b := x.Bytes() + if len(b) > len(buf) { + panic("buffer too small") + } + offset := len(buf) - len(b) + for i := range buf { + if i < offset { + buf[i] = 0 + } else { + buf[i] = b[i-offset] + } + } + return buf +} diff --git a/ecdsa/signing/round_1.go b/ecdsa/signing/round_1.go index 4672732e..920930db 100644 --- a/ecdsa/signing/round_1.go +++ b/ecdsa/signing/round_1.go @@ -121,6 +121,15 @@ func (round *round1) prepare() error { ks := round.key.Ks bigXs := round.key.BigXj + if round.temp.keyDerivationDelta != nil { + // adding the key derivation delta to the xi's + // Suppose x has shamir shares x_0, x_1, ..., x_n + // So x + D has shamir shares x_0 + D, x_1 + D, ..., x_n + D + mod := common.ModInt(round.Params().EC().Params().N) + xi = mod.Add(round.temp.keyDerivationDelta, xi) + round.key.Xi = xi + } + if round.Threshold()+1 > len(ks) { return fmt.Errorf("t+1=%d is not satisfied by the key count of %d", round.Threshold()+1, len(ks)) } diff --git a/go.mod b/go.mod index 843c9cef..c5d5426f 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.16 require ( github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8 + github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0 github.com/hashicorp/go-multierror v1.0.0 @@ -15,6 +16,7 @@ require ( github.com/otiai10/primes v0.0.0-20180210170552-f6d2a1ba97c4 github.com/pkg/errors v0.8.1 github.com/stretchr/testify v1.3.0 + golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44 golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7 // indirect google.golang.org/protobuf v1.27.1 ) diff --git a/go.sum b/go.sum index eee8502d..ab3fee3c 100644 --- a/go.sum +++ b/go.sum @@ -6,6 +6,7 @@ github.com/binance-chain/edwards25519 v0.0.0-20200305024217-f36fc4b53d43/go.mod github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8 h1:mOg8/RgDSHTQ1R0IR+LMDuW4TDShPv+JzYHuR4GLoNA= github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= +github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d h1:yJzD/yFppdVCf6ApMkVy8cUxV0XrxdP9rVf6D87/Mng= github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= @@ -63,6 +64,7 @@ github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0 github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= +golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44 h1:9lP3x0pW80sDI6t1UMSLA4to18W7R7imwAI/sWS9S8Q= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= From 14e70f2891f45aed785ab78ba9ecb8197a5674d1 Mon Sep 17 00:00:00 2001 From: Piotr Dyraga Date: Fri, 23 Sep 2022 04:44:11 +0200 Subject: [PATCH 40/50] Improve DLN proof verification performance for large signing groups (#203) * Benchmark tests for DLN proof verification The DLN proof verification is one of the most expensive parts of the key generation protocol. This benchmark allows to check how expensive the Validate call is. * Control the concurrency level when verifying DLN proofs Control the concurrency level when verifying DLN proofs Verification of discrete logarithm proofs is the most expensive part of threshold ECDSA key generation for large groups. In round 2 of key generation, the local party needs to verify proofs received from all other parties. The cost of a call to `dlnProof.Verify` measured on Darwin/arm64 Apple M1 max is 341758528 ns/op - see `BenchmarkDLNProofVerification`. There are two proofs that need to be verified during the key generation so assuming there are two cores available exclusively for this work, the verification of 100 messages takes about 35 seconds. For a group size of 1000, the verification takes about 350 seconds. The verification is performed in separate goroutines with no control over the number of goroutines created. When executing the protocol locally, during the development, for a group size of 100, 100*99*2 = 19 800 goroutines for DLN proof verification are created more or less at the same time. Even such a powerful CPU as Apple M1 Max struggles with computing the proofs - it takes more than 16 minutes on all available cores and all other processes are starved. To optimize the code to allow it to be executed for larger groups, the number of goroutines created at the same time for DLN proof verification is throttled so that all other processes are not perpetually denied necessary CPU time to perform their work. This is achieved by introducing the `DlnProofVerifier` that limits the concurrency level, by default to the number of CPUs (cores) available. * Added benchmarks for DlnProofVerifier functions The benchmarks are promising and shows the the validator does not add any significant overhead over the DLN verification itself: BenchmarkDlnProof_Verify-10 3 342581417 ns/op 1766010 B/op 3790 allocs/op BenchmarkDlnVerifier_VerifyProof1-10 3 342741028 ns/op 1859093 B/op 4320 allocs/op BenchmarkDlnVerifier_VerifyProof2-10 3 341878361 ns/op 1851984 B/op 4311 allocs/op * Allow configuring key generation concurrency in params The concurrency defaults to `GOMAXPROCS` and can be updated with a call to `SetConcurrency`. The concurrency level is applied to the pre-params generator and DLN proof validator. Since there are two optional values now when constructing parameters, instead of passing safe prime gen timeout as the last value of `NewParameters`, all expected parameters should be configured with `Set*` functions. * Use DLN verifier for resharing protocol DLN proof verification is the most computationally expensive operation of the protocol when working in large groups. DLN verifier allows to throttle the number of goroutines verifying the proofs at the same time so that other processes do not get starved. DLN verifier is already applied to key generation protocol. Here, it is getting applied to resharing as well. * Always expect concurrency level to be passed to NewDlnProofVerifier The concurrency level is now available in all rounds constructing the verifier and the optional concurrency feature is never used. * Ensure that the concurrency level is non-zero `tss.NewParameters` is not validating provided values and I did not want to make a breaking change there. Instead, I added a comment to `SetConcurrency` and added a panic in the DLN proof verifier ensuring the protocol fails with a clear message instead of hanging. This is aligned with how `keygen.GeneratePreParamsWithContext` deals with an invalid value for `optionalConcurrency` param. * Log on DEBUG level concurrency level for DLN verification --- ecdsa/keygen/dln_verifier.go | 73 ++++++++ ecdsa/keygen/dln_verifier_test.go | 241 ++++++++++++++++++++++++++ ecdsa/keygen/round_1.go | 2 +- ecdsa/keygen/round_2.go | 29 +++- ecdsa/resharing/round_2_new_step_1.go | 2 +- ecdsa/resharing/round_4_new_step_2.go | 30 ++-- tss/params.go | 30 ++-- 7 files changed, 374 insertions(+), 33 deletions(-) create mode 100644 ecdsa/keygen/dln_verifier.go create mode 100644 ecdsa/keygen/dln_verifier_test.go diff --git a/ecdsa/keygen/dln_verifier.go b/ecdsa/keygen/dln_verifier.go new file mode 100644 index 00000000..cc6be8bf --- /dev/null +++ b/ecdsa/keygen/dln_verifier.go @@ -0,0 +1,73 @@ +// Copyright © 2019 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + +package keygen + +import ( + "errors" + "math/big" + + "github.com/bnb-chain/tss-lib/crypto/dlnproof" +) + +type DlnProofVerifier struct { + semaphore chan interface{} +} + +type message interface { + UnmarshalDLNProof1() (*dlnproof.Proof, error) + UnmarshalDLNProof2() (*dlnproof.Proof, error) +} + +func NewDlnProofVerifier(concurrency int) *DlnProofVerifier { + if concurrency == 0 { + panic(errors.New("NewDlnProofverifier: concurrency level must not be zero")) + } + + semaphore := make(chan interface{}, concurrency) + + return &DlnProofVerifier{ + semaphore: semaphore, + } +} + +func (dpv *DlnProofVerifier) VerifyDLNProof1( + m message, + h1, h2, n *big.Int, + onDone func(bool), +) { + dpv.semaphore <- struct{}{} + go func() { + defer func() { <-dpv.semaphore }() + + dlnProof, err := m.UnmarshalDLNProof1() + if err != nil { + onDone(false) + return + } + + onDone(dlnProof.Verify(h1, h2, n)) + }() +} + +func (dpv *DlnProofVerifier) VerifyDLNProof2( + m message, + h1, h2, n *big.Int, + onDone func(bool), +) { + dpv.semaphore <- struct{}{} + go func() { + defer func() { <-dpv.semaphore }() + + dlnProof, err := m.UnmarshalDLNProof2() + if err != nil { + onDone(false) + return + } + + onDone(dlnProof.Verify(h1, h2, n)) + }() +} diff --git a/ecdsa/keygen/dln_verifier_test.go b/ecdsa/keygen/dln_verifier_test.go new file mode 100644 index 00000000..738bbf6b --- /dev/null +++ b/ecdsa/keygen/dln_verifier_test.go @@ -0,0 +1,241 @@ +// Copyright © 2019 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + +package keygen + +import ( + "math/big" + "runtime" + "testing" + + "github.com/bnb-chain/tss-lib/crypto/dlnproof" +) + +func BenchmarkDlnProof_Verify(b *testing.B) { + localPartySaveData, _, err := LoadKeygenTestFixtures(1) + if err != nil { + b.Fatal(err) + } + + params := localPartySaveData[0].LocalPreParams + + proof := dlnproof.NewDLNProof( + params.H1i, + params.H2i, + params.Alpha, + params.P, + params.Q, + params.NTildei, + ) + + b.ResetTimer() + for n := 0; n < b.N; n++ { + proof.Verify(params.H1i, params.H2i, params.NTildei) + } +} + +func BenchmarkDlnVerifier_VerifyProof1(b *testing.B) { + preParams, proof := prepareProofB(b) + message := &KGRound1Message{ + Dlnproof_1: proof, + } + + verifier := NewDlnProofVerifier(runtime.GOMAXPROCS(0)) + + b.ResetTimer() + for n := 0; n < b.N; n++ { + resultChan := make(chan bool) + verifier.VerifyDLNProof1(message, preParams.H1i, preParams.H2i, preParams.NTildei, func(result bool) { + resultChan <- result + }) + <-resultChan + } +} + +func BenchmarkDlnVerifier_VerifyProof2(b *testing.B) { + preParams, proof := prepareProofB(b) + message := &KGRound1Message{ + Dlnproof_2: proof, + } + + verifier := NewDlnProofVerifier(runtime.GOMAXPROCS(0)) + + b.ResetTimer() + for n := 0; n < b.N; n++ { + resultChan := make(chan bool) + verifier.VerifyDLNProof2(message, preParams.H1i, preParams.H2i, preParams.NTildei, func(result bool) { + resultChan <- result + }) + <-resultChan + } +} + +func TestVerifyDLNProof1_Success(t *testing.T) { + preParams, proof := prepareProofT(t) + message := &KGRound1Message{ + Dlnproof_1: proof, + } + + verifier := NewDlnProofVerifier(runtime.GOMAXPROCS(0)) + + resultChan := make(chan bool) + + verifier.VerifyDLNProof1(message, preParams.H1i, preParams.H2i, preParams.NTildei, func(result bool) { + resultChan <- result + }) + + success := <-resultChan + if !success { + t.Fatal("expected positive verification") + } +} + +func TestVerifyDLNProof1_MalformedMessage(t *testing.T) { + preParams, proof := prepareProofT(t) + message := &KGRound1Message{ + Dlnproof_1: proof[:len(proof)-1], // truncate + } + + verifier := NewDlnProofVerifier(runtime.GOMAXPROCS(0)) + + resultChan := make(chan bool) + + verifier.VerifyDLNProof1(message, preParams.H1i, preParams.H2i, preParams.NTildei, func(result bool) { + resultChan <- result + }) + + success := <-resultChan + if success { + t.Fatal("expected negative verification") + } +} + +func TestVerifyDLNProof1_IncorrectProof(t *testing.T) { + preParams, proof := prepareProofT(t) + message := &KGRound1Message{ + Dlnproof_1: proof, + } + + verifier := NewDlnProofVerifier(runtime.GOMAXPROCS(0)) + + resultChan := make(chan bool) + + wrongH1i := preParams.H1i.Sub(preParams.H1i, big.NewInt(1)) + verifier.VerifyDLNProof1(message, wrongH1i, preParams.H2i, preParams.NTildei, func(result bool) { + resultChan <- result + }) + + success := <-resultChan + if success { + t.Fatal("expected negative verification") + } +} + +func TestVerifyDLNProof2_Success(t *testing.T) { + preParams, proof := prepareProofT(t) + message := &KGRound1Message{ + Dlnproof_2: proof, + } + + verifier := NewDlnProofVerifier(runtime.GOMAXPROCS(0)) + + resultChan := make(chan bool) + + verifier.VerifyDLNProof2(message, preParams.H1i, preParams.H2i, preParams.NTildei, func(result bool) { + resultChan <- result + }) + + success := <-resultChan + if !success { + t.Fatal("expected positive verification") + } +} + +func TestVerifyDLNProof2_MalformedMessage(t *testing.T) { + preParams, proof := prepareProofT(t) + message := &KGRound1Message{ + Dlnproof_2: proof[:len(proof)-1], // truncate + } + + verifier := NewDlnProofVerifier(runtime.GOMAXPROCS(0)) + + resultChan := make(chan bool) + + verifier.VerifyDLNProof2(message, preParams.H1i, preParams.H2i, preParams.NTildei, func(result bool) { + resultChan <- result + }) + + success := <-resultChan + if success { + t.Fatal("expected negative verification") + } +} + +func TestVerifyDLNProof2_IncorrectProof(t *testing.T) { + preParams, proof := prepareProofT(t) + message := &KGRound1Message{ + Dlnproof_2: proof, + } + + verifier := NewDlnProofVerifier(runtime.GOMAXPROCS(0)) + + resultChan := make(chan bool) + + wrongH2i := preParams.H2i.Add(preParams.H2i, big.NewInt(1)) + verifier.VerifyDLNProof2(message, preParams.H1i, wrongH2i, preParams.NTildei, func(result bool) { + resultChan <- result + }) + + success := <-resultChan + if success { + t.Fatal("expected negative verification") + } +} + +func prepareProofT(t *testing.T) (*LocalPreParams, [][]byte) { + preParams, serialized, err := prepareProof() + if err != nil { + t.Fatal(err) + } + + return preParams, serialized +} + +func prepareProofB(b *testing.B) (*LocalPreParams, [][]byte) { + preParams, serialized, err := prepareProof() + if err != nil { + b.Fatal(err) + } + + return preParams, serialized +} + +func prepareProof() (*LocalPreParams, [][]byte, error) { + localPartySaveData, _, err := LoadKeygenTestFixtures(1) + if err != nil { + return nil, [][]byte{}, err + } + + preParams := localPartySaveData[0].LocalPreParams + + proof := dlnproof.NewDLNProof( + preParams.H1i, + preParams.H2i, + preParams.Alpha, + preParams.P, + preParams.Q, + preParams.NTildei, + ) + + serialized, err := proof.Serialize() + if err != nil { + if err != nil { + return nil, [][]byte{}, err + } + } + + return &preParams, serialized, nil +} diff --git a/ecdsa/keygen/round_1.go b/ecdsa/keygen/round_1.go index 8eea72d4..9cfda2df 100644 --- a/ecdsa/keygen/round_1.go +++ b/ecdsa/keygen/round_1.go @@ -74,7 +74,7 @@ func (round *round1) Start() *tss.Error { } else if round.save.LocalPreParams.ValidateWithProof() { preParams = &round.save.LocalPreParams } else { - preParams, err = GeneratePreParams(round.SafePrimeGenTimeout(), 3) + preParams, err = GeneratePreParams(round.SafePrimeGenTimeout(), round.Concurrency()) if err != nil { return round.WrapError(errors.New("pre-params generation failed"), Pi) } diff --git a/ecdsa/keygen/round_2.go b/ecdsa/keygen/round_2.go index b41ec78c..e72b6be2 100644 --- a/ecdsa/keygen/round_2.go +++ b/ecdsa/keygen/round_2.go @@ -9,9 +9,9 @@ package keygen import ( "encoding/hex" "errors" - "math/big" "sync" + "github.com/bnb-chain/tss-lib/common" "github.com/bnb-chain/tss-lib/tss" ) @@ -27,6 +27,13 @@ func (round *round2) Start() *tss.Error { round.started = true round.resetOK() + common.Logger.Debugf( + "%s Setting up DLN verification with concurrency level of %d", + round.PartyID(), + round.Concurrency(), + ) + dlnVerifier := NewDlnProofVerifier(round.Concurrency()) + i := round.PartyID().Index // 6. verify dln proofs, store r1 message pieces, ensure uniqueness of h1j, h2j @@ -58,19 +65,23 @@ func (round *round2) Start() *tss.Error { return round.WrapError(errors.New("this h2j was already used by another party"), msg.GetFrom()) } h1H2Map[h1JHex], h1H2Map[h2JHex] = struct{}{}, struct{}{} + wg.Add(2) - go func(j int, msg tss.ParsedMessage, r1msg *KGRound1Message, H1j, H2j, NTildej *big.Int) { - if dlnProof1, err := r1msg.UnmarshalDLNProof1(); err != nil || !dlnProof1.Verify(H1j, H2j, NTildej) { - dlnProof1FailCulprits[j] = msg.GetFrom() + _j := j + _msg := msg + + dlnVerifier.VerifyDLNProof1(r1msg, H1j, H2j, NTildej, func(isValid bool) { + if !isValid { + dlnProof1FailCulprits[_j] = _msg.GetFrom() } wg.Done() - }(j, msg, r1msg, H1j, H2j, NTildej) - go func(j int, msg tss.ParsedMessage, r1msg *KGRound1Message, H1j, H2j, NTildej *big.Int) { - if dlnProof2, err := r1msg.UnmarshalDLNProof2(); err != nil || !dlnProof2.Verify(H2j, H1j, NTildej) { - dlnProof2FailCulprits[j] = msg.GetFrom() + }) + dlnVerifier.VerifyDLNProof2(r1msg, H2j, H1j, NTildej, func(isValid bool) { + if !isValid { + dlnProof2FailCulprits[_j] = _msg.GetFrom() } wg.Done() - }(j, msg, r1msg, H1j, H2j, NTildej) + }) } wg.Wait() for _, culprit := range append(dlnProof1FailCulprits, dlnProof2FailCulprits...) { diff --git a/ecdsa/resharing/round_2_new_step_1.go b/ecdsa/resharing/round_2_new_step_1.go index 365e20a3..c93c2861 100644 --- a/ecdsa/resharing/round_2_new_step_1.go +++ b/ecdsa/resharing/round_2_new_step_1.go @@ -49,7 +49,7 @@ func (round *round2) Start() *tss.Error { preParams = &round.save.LocalPreParams } else { var err error - preParams, err = keygen.GeneratePreParams(round.SafePrimeGenTimeout()) + preParams, err = keygen.GeneratePreParams(round.SafePrimeGenTimeout(), round.Concurrency()) if err != nil { return round.WrapError(errors.New("pre-params generation failed"), Pi) } diff --git a/ecdsa/resharing/round_4_new_step_2.go b/ecdsa/resharing/round_4_new_step_2.go index 40ef9448..9bff552d 100644 --- a/ecdsa/resharing/round_4_new_step_2.go +++ b/ecdsa/resharing/round_4_new_step_2.go @@ -18,6 +18,7 @@ import ( "github.com/bnb-chain/tss-lib/crypto" "github.com/bnb-chain/tss-lib/crypto/commitments" "github.com/bnb-chain/tss-lib/crypto/vss" + "github.com/bnb-chain/tss-lib/ecdsa/keygen" "github.com/bnb-chain/tss-lib/tss" ) @@ -36,6 +37,13 @@ func (round *round4) Start() *tss.Error { return nil } + common.Logger.Debugf( + "%s Setting up DLN verification with concurrency level of %d", + round.PartyID(), + round.Concurrency(), + ) + dlnVerifier := keygen.NewDlnProofVerifier(round.Concurrency()) + Pi := round.PartyID() i := Pi.Index @@ -71,20 +79,22 @@ func (round *round4) Start() *tss.Error { } wg.Done() }(j, msg, r2msg1) - go func(j int, msg tss.ParsedMessage, r2msg1 *DGRound2Message1, H1j, H2j, NTildej *big.Int) { - if dlnProof1, err := r2msg1.UnmarshalDLNProof1(); err != nil || !dlnProof1.Verify(H1j, H2j, NTildej) { - dlnProof1FailCulprits[j] = msg.GetFrom() - common.Logger.Warningf("dln proof 1 verify failed for party %s", msg.GetFrom(), err) + _j := j + _msg := msg + dlnVerifier.VerifyDLNProof1(r2msg1, H1j, H2j, NTildej, func(isValid bool) { + if !isValid { + dlnProof1FailCulprits[_j] = _msg.GetFrom() + common.Logger.Warningf("dln proof 1 verify failed for party %s", _msg.GetFrom()) } wg.Done() - }(j, msg, r2msg1, H1j, H2j, NTildej) - go func(j int, msg tss.ParsedMessage, r2msg1 *DGRound2Message1, H1j, H2j, NTildej *big.Int) { - if dlnProof2, err := r2msg1.UnmarshalDLNProof2(); err != nil || !dlnProof2.Verify(H2j, H1j, NTildej) { - dlnProof2FailCulprits[j] = msg.GetFrom() - common.Logger.Warningf("dln proof 2 verify failed for party %s", msg.GetFrom(), err) + }) + dlnVerifier.VerifyDLNProof2(r2msg1, H2j, H1j, NTildej, func(isValid bool) { + if !isValid { + dlnProof2FailCulprits[_j] = _msg.GetFrom() + common.Logger.Warningf("dln proof 2 verify failed for party %s", _msg.GetFrom()) } wg.Done() - }(j, msg, r2msg1, H1j, H2j, NTildej) + }) } wg.Wait() for _, culprit := range append(append(paiProofCulprits, dlnProof1FailCulprits...), dlnProof2FailCulprits...) { diff --git a/tss/params.go b/tss/params.go index 8cb33368..8bf74148 100644 --- a/tss/params.go +++ b/tss/params.go @@ -8,7 +8,7 @@ package tss import ( "crypto/elliptic" - "errors" + "runtime" "time" ) @@ -19,6 +19,7 @@ type ( parties *PeerContext partyCount int threshold int + concurrency int safePrimeGenTimeout time.Duration } @@ -35,23 +36,15 @@ const ( ) // Exported, used in `tss` client -func NewParameters(ec elliptic.Curve, ctx *PeerContext, partyID *PartyID, partyCount, threshold int, optionalSafePrimeGenTimeout ...time.Duration) *Parameters { - var safePrimeGenTimeout time.Duration - if 0 < len(optionalSafePrimeGenTimeout) { - if 1 < len(optionalSafePrimeGenTimeout) { - panic(errors.New("GeneratePreParams: expected 0 or 1 item in `optionalSafePrimeGenTimeout`")) - } - safePrimeGenTimeout = optionalSafePrimeGenTimeout[0] - } else { - safePrimeGenTimeout = defaultSafePrimeGenTimeout - } +func NewParameters(ec elliptic.Curve, ctx *PeerContext, partyID *PartyID, partyCount, threshold int) *Parameters { return &Parameters{ ec: ec, parties: ctx, partyID: partyID, partyCount: partyCount, threshold: threshold, - safePrimeGenTimeout: safePrimeGenTimeout, + concurrency: runtime.GOMAXPROCS(0), + safePrimeGenTimeout: defaultSafePrimeGenTimeout, } } @@ -75,10 +68,23 @@ func (params *Parameters) Threshold() int { return params.threshold } +func (params *Parameters) Concurrency() int { + return params.concurrency +} + func (params *Parameters) SafePrimeGenTimeout() time.Duration { return params.safePrimeGenTimeout } +// The concurrency level must be >= 1. +func (params *Parameters) SetConcurrency(concurrency int) { + params.concurrency = concurrency +} + +func (params *Parameters) SetSafePrimeGenTimeout(timeout time.Duration) { + params.safePrimeGenTimeout = timeout +} + // ----- // // Exported, used in `tss` client From bb6fb30bd3ebd35c755109836aa1a5ee6126c8a0 Mon Sep 17 00:00:00 2001 From: ycen <44356973+yycen@users.noreply.github.com> Date: Fri, 24 Mar 2023 22:55:55 +0800 Subject: [PATCH 41/50] Fix Hash collision (#233) Borrow from https://github.com/IoFinnet/threshlib/commit/369ec50be1437588a9733443bcb2f15b794601d4 --- common/hash.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/common/hash.go b/common/hash.go index 5edd33d4..e26b2fc6 100644 --- a/common/hash.go +++ b/common/hash.go @@ -35,11 +35,16 @@ func SHA512_256(in ...[]byte) []byte { for _, bz := range in { bzSize += len(bz) } - data = make([]byte, 0, len(inLenBz)+bzSize+inLen) + dataCap := len(inLenBz) + bzSize + inLen + (inLen * 8) + data = make([]byte, 0, dataCap) data = append(data, inLenBz...) for _, bz := range in { data = append(data, bz...) data = append(data, hashInputDelimiter) // safety delimiter + dataLen := make([]byte, 8) // 64-bits + binary.LittleEndian.PutUint64(dataLen, uint64(len(bz))) + data = append(data, dataLen...) // Security audit: length of each byte buffer should be added after + // each security delimiters in order to enforce proper domain separation } // n < len(data) or an error will never happen. // see: https://golang.org/pkg/hash/#Hash and https://github.com/golang/go/wiki/Hashing#the-hashhash-interface @@ -68,11 +73,16 @@ func SHA512_256i(in ...*big.Int) *big.Int { ptrs[i] = n.Bytes() bzSize += len(ptrs[i]) } - data = make([]byte, 0, len(inLenBz)+bzSize+inLen) + dataCap := len(inLenBz) + bzSize + inLen + (inLen * 8) + data = make([]byte, 0, dataCap) data = append(data, inLenBz...) for i := range in { data = append(data, ptrs[i]...) data = append(data, hashInputDelimiter) // safety delimiter + dataLen := make([]byte, 8) // 64-bits + binary.LittleEndian.PutUint64(dataLen, uint64(len(ptrs[i]))) + data = append(data, dataLen...) // Security audit: length of each byte buffer should be added after + // each security delimiters in order to enforce proper domain separation } // n < len(data) or an error will never happen. // see: https://golang.org/pkg/hash/#Hash and https://github.com/golang/go/wiki/Hashing#the-hashhash-interface From afbe264b44b63155a864dbe0171040c66e442963 Mon Sep 17 00:00:00 2001 From: Hungry Date: Wed, 10 May 2023 16:20:24 +0800 Subject: [PATCH 42/50] Update SECURITY.md (#241) --- SECURITY.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SECURITY.md b/SECURITY.md index c555b2ff..16a6f256 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -4,7 +4,7 @@ For non-security problems please open an issue in this GitHub repository. -If you find any security issues please send a report confidentially to security@binance.com. +If you find any security issues please send a report confidentially to https://bugcrowd.com/binance. Please include notes about the impact of the issue and a walkthrough on how it can be exploited. From 3d95e54c2c9e26211ec0599f90772e8eb260c62b Mon Sep 17 00:00:00 2001 From: ycen <44356973+yycen@users.noreply.github.com> Date: Thu, 10 Aug 2023 21:39:19 +0800 Subject: [PATCH 43/50] ECDSA protocol security updates (#252) * ECDSA protocol security updates * Update proofs.go * Limit y in Mta in range and prove * Add checks in proofFac * Add checks in MtA * Remove unnecessary assignments * Update unbiased reject sample * Make compatible for old parties with no facProof * Revert "Make compatible for old parties with no facProof" This reverts commit 4c9fa888180256f77380b4b49eebaa403dd783df. * Revised compatible for old parties with no facProof * Update facProof condition test * Allow empty proofFac, roll back rejectSample for compatibility --------- Co-authored-by: Wan Ziyi <40668033+Derrick-Wan@users.noreply.github.com> --- common/int.go | 4 + crypto/facproof/proof.go | 263 +++++++++++++++++++ crypto/facproof/proof_test.go | 63 +++++ crypto/mta/proofs.go | 50 +++- crypto/mta/range_proof.go | 22 ++ crypto/mta/range_proof_test.go | 68 +++++ crypto/mta/share_protocol.go | 10 +- crypto/paillier/paillier.go | 3 +- ecdsa/keygen/ecdsa-keygen.pb.go | 42 +-- ecdsa/keygen/messages.go | 12 +- ecdsa/keygen/round_2.go | 9 +- ecdsa/keygen/round_3.go | 13 + ecdsa/keygen/save_data.go | 2 + protob/ecdsa-keygen.proto | 1 + test/_ecdsa_fixtures/keygen_data_0.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_1.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_10.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_11.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_12.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_13.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_14.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_15.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_16.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_17.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_18.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_19.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_2.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_3.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_4.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_5.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_6.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_7.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_8.json | 318 ++++++++++++++++++++++- test/_ecdsa_fixtures/keygen_data_9.json | 318 ++++++++++++++++++++++- 34 files changed, 6875 insertions(+), 47 deletions(-) create mode 100644 crypto/facproof/proof.go create mode 100644 crypto/facproof/proof_test.go diff --git a/common/int.go b/common/int.go index 5a951c09..379da101 100644 --- a/common/int.go +++ b/common/int.go @@ -58,3 +58,7 @@ func (mi *modInt) ModInverse(g *big.Int) *big.Int { func (mi *modInt) i() *big.Int { return (*big.Int)(mi) } + +func IsInInterval(b *big.Int, bound *big.Int) bool { + return b.Cmp(bound) == -1 && b.Cmp(zero) >= 0 +} diff --git a/crypto/facproof/proof.go b/crypto/facproof/proof.go new file mode 100644 index 00000000..69720bed --- /dev/null +++ b/crypto/facproof/proof.go @@ -0,0 +1,263 @@ +// Copyright © 2019 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + +package facproof + +import ( + "crypto/elliptic" + "errors" + "fmt" + "github.com/bnb-chain/tss-lib/common" + "math/big" +) + +const ( + ProofFacBytesParts = 11 +) + +type ( + ProofFac struct { + P, Q, A, B, T, Sigma, Z1, Z2, W1, W2, V *big.Int + } +) + +var ( + // rangeParameter l limits the bits of p or q to be in [1024-l, 1024+l] + rangeParameter = new(big.Int).Lsh(big.NewInt(1), 15) + one = big.NewInt(1) +) + +// NewProof implements proofFac +func NewProof(ec elliptic.Curve, N0, NCap, s, t, N0p, N0q *big.Int) (*ProofFac, error) { + if ec == nil || N0 == nil || NCap == nil || s == nil || t == nil || N0p == nil || N0q == nil { + return nil, errors.New("ProveFac constructor received nil value(s)") + } + + q := ec.Params().N + sqrtN0 := new(big.Int).Sqrt(N0) + + leSqrtN0 := new(big.Int).Mul(rangeParameter, q) + leSqrtN0 = new(big.Int).Mul(leSqrtN0, sqrtN0) + lNCap := new(big.Int).Mul(rangeParameter, NCap) + lN0NCap := new(big.Int).Mul(lNCap, N0) + leN0NCap := new(big.Int).Mul(lN0NCap, q) + leNCap := new(big.Int).Mul(lNCap, q) + + // Fig 28.1 sample + alpha := common.GetRandomPositiveInt(leSqrtN0) + beta := common.GetRandomPositiveInt(leSqrtN0) + mu := common.GetRandomPositiveInt(lNCap) + nu := common.GetRandomPositiveInt(lNCap) + sigma := common.GetRandomPositiveInt(lN0NCap) + r := common.GetRandomPositiveRelativelyPrimeInt(leN0NCap) + x := common.GetRandomPositiveInt(leNCap) + y := common.GetRandomPositiveInt(leNCap) + + // Fig 28.1 compute + modNCap := common.ModInt(NCap) + P := modNCap.Exp(s, N0p) + P = modNCap.Mul(P, modNCap.Exp(t, mu)) + + Q := modNCap.Exp(s, N0q) + Q = modNCap.Mul(Q, modNCap.Exp(t, nu)) + + A := modNCap.Exp(s, alpha) + A = modNCap.Mul(A, modNCap.Exp(t, x)) + + B := modNCap.Exp(s, beta) + B = modNCap.Mul(B, modNCap.Exp(t, y)) + + T := modNCap.Exp(Q, alpha) + T = modNCap.Mul(T, modNCap.Exp(t, r)) + + // Fig 28.2 e + var e *big.Int + { + eHash := common.SHA512_256i(N0, NCap, s, t, P, Q, A, B, T, sigma) + e = common.RejectionSample(q, eHash) + } + + // Fig 28.3 + z1 := new(big.Int).Mul(e, N0p) + z1 = new(big.Int).Add(z1, alpha) + + z2 := new(big.Int).Mul(e, N0q) + z2 = new(big.Int).Add(z2, beta) + + w1 := new(big.Int).Mul(e, mu) + w1 = new(big.Int).Add(w1, x) + + w2 := new(big.Int).Mul(e, nu) + w2 = new(big.Int).Add(w2, y) + + v := new(big.Int).Mul(nu, N0p) + v = new(big.Int).Sub(sigma, v) + v = new(big.Int).Mul(e, v) + v = new(big.Int).Add(v, r) + + return &ProofFac{P: P, Q: Q, A: A, B: B, T: T, Sigma: sigma, Z1: z1, Z2: z2, W1: w1, W2: w2, V: v}, nil +} + +func NewProofFromBytes(bzs [][]byte) (*ProofFac, error) { + if !common.NonEmptyMultiBytes(bzs, ProofFacBytesParts) { + return nil, fmt.Errorf("expected %d byte parts to construct ProofFac", ProofFacBytesParts) + } + return &ProofFac{ + P: new(big.Int).SetBytes(bzs[0]), + Q: new(big.Int).SetBytes(bzs[1]), + A: new(big.Int).SetBytes(bzs[2]), + B: new(big.Int).SetBytes(bzs[3]), + T: new(big.Int).SetBytes(bzs[4]), + Sigma: new(big.Int).SetBytes(bzs[5]), + Z1: new(big.Int).SetBytes(bzs[6]), + Z2: new(big.Int).SetBytes(bzs[7]), + W1: new(big.Int).SetBytes(bzs[8]), + W2: new(big.Int).SetBytes(bzs[9]), + V: new(big.Int).SetBytes(bzs[10]), + }, nil +} + +func (pf *ProofFac) Verify(ec elliptic.Curve, N0, NCap, s, t *big.Int) bool { + if pf == nil || !pf.ValidateBasic() || ec == nil || N0 == nil || NCap == nil || s == nil || t == nil { + return false + } + if N0.Sign() != 1 { + return false + } + if NCap.Sign() != 1 { + return false + } + + q := ec.Params().N + sqrtN0 := new(big.Int).Sqrt(N0) + + leSqrtN0 := new(big.Int).Mul(rangeParameter, q) + leSqrtN0 = new(big.Int).Mul(leSqrtN0, sqrtN0) + lNCap := new(big.Int).Mul(rangeParameter, NCap) + lN0NCap := new(big.Int).Mul(lNCap, N0) + leN0NCap2 := new(big.Int).Lsh(new(big.Int).Mul(lN0NCap, q), 1) + leNCap2 := new(big.Int).Lsh(new(big.Int).Mul(lNCap, q), 1) + + if !common.IsInInterval(pf.P, NCap) { + return false + } + if !common.IsInInterval(pf.Q, NCap) { + return false + } + if !common.IsInInterval(pf.A, NCap) { + return false + } + if !common.IsInInterval(pf.B, NCap) { + return false + } + if !common.IsInInterval(pf.T, NCap) { + return false + } + if !common.IsInInterval(pf.Sigma, lN0NCap) { + return false + } + if new(big.Int).GCD(nil, nil, pf.P, NCap).Cmp(one) != 0 { + return false + } + if new(big.Int).GCD(nil, nil, pf.Q, NCap).Cmp(one) != 0 { + return false + } + if new(big.Int).GCD(nil, nil, pf.A, NCap).Cmp(one) != 0 { + return false + } + if new(big.Int).GCD(nil, nil, pf.B, NCap).Cmp(one) != 0 { + return false + } + if new(big.Int).GCD(nil, nil, pf.T, NCap).Cmp(one) != 0 { + return false + } + if !common.IsInInterval(pf.W1, leNCap2) { + return false + } + if !common.IsInInterval(pf.W2, leNCap2) { + return false + } + if !common.IsInInterval(pf.V, leN0NCap2) { + return false + } + + // Fig 28. Range Check + if !common.IsInInterval(pf.Z1, leSqrtN0) { + return false + } + + if !common.IsInInterval(pf.Z2, leSqrtN0) { + return false + } + + var e *big.Int + { + eHash := common.SHA512_256i(N0, NCap, s, t, pf.P, pf.Q, pf.A, pf.B, pf.T, pf.Sigma) + e = common.RejectionSample(q, eHash) + } + + // Fig 28. Equality Check + modNCap := common.ModInt(NCap) + { + LHS := modNCap.Mul(modNCap.Exp(s, pf.Z1), modNCap.Exp(t, pf.W1)) + RHS := modNCap.Mul(pf.A, modNCap.Exp(pf.P, e)) + + if LHS.Cmp(RHS) != 0 { + return false + } + } + + { + LHS := modNCap.Mul(modNCap.Exp(s, pf.Z2), modNCap.Exp(t, pf.W2)) + RHS := modNCap.Mul(pf.B, modNCap.Exp(pf.Q, e)) + + if LHS.Cmp(RHS) != 0 { + return false + } + } + + { + R := modNCap.Mul(modNCap.Exp(s, N0), modNCap.Exp(t, pf.Sigma)) + LHS := modNCap.Mul(modNCap.Exp(pf.Q, pf.Z1), modNCap.Exp(t, pf.V)) + RHS := modNCap.Mul(pf.T, modNCap.Exp(R, e)) + + if LHS.Cmp(RHS) != 0 { + return false + } + } + + return true +} + +func (pf *ProofFac) ValidateBasic() bool { + return pf.P != nil && + pf.Q != nil && + pf.A != nil && + pf.B != nil && + pf.T != nil && + pf.Sigma != nil && + pf.Z1 != nil && + pf.Z2 != nil && + pf.W1 != nil && + pf.W2 != nil && + pf.V != nil +} + +func (pf *ProofFac) Bytes() [ProofFacBytesParts][]byte { + return [...][]byte{ + pf.P.Bytes(), + pf.Q.Bytes(), + pf.A.Bytes(), + pf.B.Bytes(), + pf.T.Bytes(), + pf.Sigma.Bytes(), + pf.Z1.Bytes(), + pf.Z2.Bytes(), + pf.W1.Bytes(), + pf.W2.Bytes(), + pf.V.Bytes(), + } +} diff --git a/crypto/facproof/proof_test.go b/crypto/facproof/proof_test.go new file mode 100644 index 00000000..993abb03 --- /dev/null +++ b/crypto/facproof/proof_test.go @@ -0,0 +1,63 @@ +// Copyright © 2019 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + +package facproof_test + +import ( + "math/big" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" + . "github.com/bnb-chain/tss-lib/crypto/facproof" + "github.com/bnb-chain/tss-lib/tss" +) + +// Using a modulus length of 2048 is recommended in the GG18 spec +const ( + testSafePrimeBits = 1024 +) + +func TestFac(test *testing.T) { + ec := tss.EC() + + N0p := common.GetRandomPrimeInt(testSafePrimeBits) + N0q := common.GetRandomPrimeInt(testSafePrimeBits) + N0 := new(big.Int).Mul(N0p, N0q) + + primes := [2]*big.Int{common.GetRandomPrimeInt(testSafePrimeBits), common.GetRandomPrimeInt(testSafePrimeBits)} + NCap, s, t, err := crypto.GenerateNTildei(primes) + assert.NoError(test, err) + proof, err := NewProof(ec, N0, NCap, s, t, N0p, N0q) + assert.NoError(test, err) + + ok := proof.Verify(ec, N0, NCap, s, t) + assert.True(test, ok, "proof must verify") + + N0p = common.GetRandomPrimeInt(1024) + N0q = common.GetRandomPrimeInt(1024) + N0 = new(big.Int).Mul(N0p, N0q) + + proof, err = NewProof(ec, N0, NCap, s, t, N0p, N0q) + assert.NoError(test, err) + + ok = proof.Verify(ec, N0, NCap, s, t) + assert.True(test, ok, "proof must verify") + + // factor should have bits [1024-16, 1024+16] + smallFactor := 900 + N0p = common.GetRandomPrimeInt(smallFactor) + N0q = common.GetRandomPrimeInt(2048 - smallFactor) + N0 = new(big.Int).Mul(N0p, N0q) + + proof, err = NewProof(ec, N0, NCap, s, t, N0p, N0q) + assert.NoError(test, err) + + ok = proof.Verify(ec, N0, NCap, s, t) + assert.False(test, ok, "proof must not verify") +} diff --git a/crypto/mta/proofs.go b/crypto/mta/proofs.go index 1656e49b..822085d2 100644 --- a/crypto/mta/proofs.go +++ b/crypto/mta/proofs.go @@ -45,6 +45,8 @@ func ProveBobWC(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c q := ec.Params().N q3 := new(big.Int).Mul(q, q) q3 = new(big.Int).Mul(q, q3) + q7 := new(big.Int).Mul(q3, q3) + q7 = new(big.Int).Mul(q7, q) qNTilde := new(big.Int).Mul(q, NTilde) q3NTilde := new(big.Int).Mul(q3, NTilde) @@ -55,14 +57,15 @@ func ProveBobWC(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c // 2. rho := common.GetRandomPositiveInt(qNTilde) sigma := common.GetRandomPositiveInt(qNTilde) - tau := common.GetRandomPositiveInt(qNTilde) + tau := common.GetRandomPositiveInt(q3NTilde) // 3. rhoPrm := common.GetRandomPositiveInt(q3NTilde) // 4. beta := common.GetRandomPositiveRelativelyPrimeInt(pk.N) - gamma := common.GetRandomPositiveRelativelyPrimeInt(pk.N) + + gamma := common.GetRandomPositiveInt(q7) // 5. u := crypto.NewECPointNoCurveCheck(ec, zero, zero) // initialization suppresses an IDE warning @@ -191,8 +194,44 @@ func (pf *ProofBobWC) Verify(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, } q := ec.Params().N - q3 := new(big.Int).Mul(q, q) - q3 = new(big.Int).Mul(q, q3) + q3 := new(big.Int).Mul(q, q) // q^2 + q3 = new(big.Int).Mul(q, q3) // q^3 + q7 := new(big.Int).Mul(q3, q3) // q^6 + q7 = new(big.Int).Mul(q7, q) // q^7 + + if !common.IsInInterval(pf.Z, NTilde) { + return false + } + if !common.IsInInterval(pf.ZPrm, NTilde) { + return false + } + if !common.IsInInterval(pf.T, NTilde) { + return false + } + if !common.IsInInterval(pf.V, pk.NSquare()) { + return false + } + if !common.IsInInterval(pf.W, NTilde) { + return false + } + if !common.IsInInterval(pf.S, pk.N) { + return false + } + if new(big.Int).GCD(nil, nil, pf.Z, NTilde).Cmp(one) != 0 { + return false + } + if new(big.Int).GCD(nil, nil, pf.ZPrm, NTilde).Cmp(one) != 0 { + return false + } + if new(big.Int).GCD(nil, nil, pf.T, NTilde).Cmp(one) != 0 { + return false + } + if new(big.Int).GCD(nil, nil, pf.V, pk.NSquare()).Cmp(one) != 0 { + return false + } + if new(big.Int).GCD(nil, nil, pf.W, NTilde).Cmp(one) != 0 { + return false + } gcd := big.NewInt(0) if pf.S.Cmp(zero) == 0 { @@ -212,6 +251,9 @@ func (pf *ProofBobWC) Verify(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, if pf.S1.Cmp(q3) > 0 { return false } + if pf.T1.Cmp(q7) > 0 { + return false + } // 1-2. e' var e *big.Int diff --git a/crypto/mta/range_proof.go b/crypto/mta/range_proof.go index e962fdc6..ba5cfebb 100644 --- a/crypto/mta/range_proof.go +++ b/crypto/mta/range_proof.go @@ -113,6 +113,28 @@ func (pf *RangeProofAlice) Verify(ec elliptic.Curve, pk *paillier.PublicKey, NTi q3 := new(big.Int).Mul(q, q) q3 = new(big.Int).Mul(q, q3) + if !common.IsInInterval(pf.Z, NTilde) { + return false + } + if !common.IsInInterval(pf.U, pk.NSquare()) { + return false + } + if !common.IsInInterval(pf.W, NTilde) { + return false + } + if !common.IsInInterval(pf.S, pk.N) { + return false + } + if new(big.Int).GCD(nil, nil, pf.Z, NTilde).Cmp(one) != 0 { + return false + } + if new(big.Int).GCD(nil, nil, pf.U, pk.NSquare()).Cmp(one) != 0 { + return false + } + if new(big.Int).GCD(nil, nil, pf.W, NTilde).Cmp(one) != 0 { + return false + } + // 3. if pf.S1.Cmp(q3) == 1 { return false diff --git a/crypto/mta/range_proof_test.go b/crypto/mta/range_proof_test.go index b8cac1e3..c6bf7b8e 100644 --- a/crypto/mta/range_proof_test.go +++ b/crypto/mta/range_proof_test.go @@ -8,6 +8,7 @@ package mta import ( "context" + "fmt" "math/big" "testing" "time" @@ -47,3 +48,70 @@ func TestProveRangeAlice(t *testing.T) { ok := proof.Verify(tss.EC(), pk, NTildei, h1i, h2i, c) assert.True(t, ok, "proof must verify") } + +func TestProveRangeAliceBypassed(t *testing.T) { + q := tss.EC().Params().N + + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute) + defer cancel() + + sk_0, pk_0, err := paillier.GenerateKeyPair(ctx, testPaillierKeyLength) + assert.NoError(t, err) + + m_0 := common.GetRandomPositiveInt(q) + c_0, r_0, err := sk_0.EncryptAndReturnRandomness(m_0) + assert.NoError(t, err) + + primes_0 := [2]*big.Int{common.GetRandomPrimeInt(testSafePrimeBits), common.GetRandomPrimeInt(testSafePrimeBits)} + NTildei_0, h1i_0, h2i_0, err := crypto.GenerateNTildei(primes_0) + assert.NoError(t, err) + proof_0, err := ProveRangeAlice(tss.EC(), pk_0, c_0, NTildei_0, h1i_0, h2i_0, m_0, r_0) + assert.NoError(t, err) + + ok_0 := proof_0.Verify(tss.EC(), pk_0, NTildei_0, h1i_0, h2i_0, c_0) + assert.True(t, ok_0, "proof must verify") + + //proof 2 + sk_1, pk_1, err := paillier.GenerateKeyPair(ctx, testPaillierKeyLength) + assert.NoError(t, err) + + m_1 := common.GetRandomPositiveInt(q) + c_1, r_1, err := sk_1.EncryptAndReturnRandomness(m_1) + assert.NoError(t, err) + + primes_1 := [2]*big.Int{common.GetRandomPrimeInt(testSafePrimeBits), common.GetRandomPrimeInt(testSafePrimeBits)} + NTildei_1, h1i_1, h2i_1, err := crypto.GenerateNTildei(primes_1) + assert.NoError(t, err) + proof_1, err := ProveRangeAlice(tss.EC(), pk_1, c_1, NTildei_1, h1i_1, h2i_1, m_1, r_1) + assert.NoError(t, err) + + ok_1 := proof_1.Verify(tss.EC(), pk_1, NTildei_1, h1i_1, h2i_1, c_1) + assert.True(t, ok_1, "proof must verify") + + cross_0 := proof_0.Verify(tss.EC(), pk_1, NTildei_1, h1i_1, h2i_1, c_1) + assert.False(t, cross_0, "proof must not verify") + + cross_1 := proof_1.Verify(tss.EC(), pk_0, NTildei_0, h1i_0, h2i_0, c_0) + assert.False(t, cross_1, "proof must not verify") + + fmt.Println("Did verify proof 0 with data from 0?", ok_0) + fmt.Println("Did verify proof 1 with data from 1?", ok_1) + + fmt.Println("Did verify proof 0 with data from 1?", cross_0) + fmt.Println("Did verify proof 1 with data from 0?", cross_1) + + //always passes + bypassedProof := &RangeProofAlice{ + S: big.NewInt(0), + S1: big.NewInt(0), + S2: big.NewInt(0), + Z: big.NewInt(1), + U: big.NewInt(0), + W: big.NewInt(1), + } + + bypassResult_1 := bypassedProof.Verify(tss.EC(), pk_0, NTildei_0, h1i_0, h2i_0, c_0) + fmt.Println("Did we bypass proof 1?", bypassResult_1) + bypassResult_2 := bypassedProof.Verify(tss.EC(), pk_1, NTildei_1, h1i_1, h2i_1, c_1) + fmt.Println("Did we bypass proof 2?", bypassResult_2) +} diff --git a/crypto/mta/share_protocol.go b/crypto/mta/share_protocol.go index 4f288582..b8c8be71 100644 --- a/crypto/mta/share_protocol.go +++ b/crypto/mta/share_protocol.go @@ -40,7 +40,10 @@ func BobMid( return } q := ec.Params().N - betaPrm = common.GetRandomPositiveInt(pkA.N) + q5 := new(big.Int).Mul(q, q) // q^2 + q5 = new(big.Int).Mul(q5, q5) // q^4 + q5 = new(big.Int).Mul(q5, q) // q^5 + betaPrm = common.GetRandomPositiveInt(q5) cBetaPrm, cRand, err := pkA.EncryptAndReturnRandomness(betaPrm) if err != nil { return @@ -70,7 +73,10 @@ func BobMidWC( return } q := ec.Params().N - betaPrm = common.GetRandomPositiveInt(pkA.N) + q5 := new(big.Int).Mul(q, q) // q^2 + q5 = new(big.Int).Mul(q5, q5) // q^4 + q5 = new(big.Int).Mul(q5, q) // q^5 + betaPrm = common.GetRandomPositiveInt(q5) cBetaPrm, cRand, err := pkA.EncryptAndReturnRandomness(betaPrm) if err != nil { return diff --git a/crypto/paillier/paillier.go b/crypto/paillier/paillier.go index 0b4325bf..14ad6412 100644 --- a/crypto/paillier/paillier.go +++ b/crypto/paillier/paillier.go @@ -45,6 +45,7 @@ type ( PublicKey LambdaN, // lcm(p-1, q-1) PhiN *big.Int // (p-1) * (q-1) + P, Q *big.Int } // Proof uses the new GenerateXs method in GG18Spec (6) @@ -103,7 +104,7 @@ func GenerateKeyPair(ctx context.Context, modulusBitLen int, optionalConcurrency lambdaN := new(big.Int).Div(phiN, gcd) publicKey = &PublicKey{N: N} - privateKey = &PrivateKey{PublicKey: *publicKey, LambdaN: lambdaN, PhiN: phiN} + privateKey = &PrivateKey{PublicKey: *publicKey, LambdaN: lambdaN, PhiN: phiN, P: P, Q: Q} return } diff --git a/ecdsa/keygen/ecdsa-keygen.pb.go b/ecdsa/keygen/ecdsa-keygen.pb.go index 55dd23d9..539b7b55 100644 --- a/ecdsa/keygen/ecdsa-keygen.pb.go +++ b/ecdsa/keygen/ecdsa-keygen.pb.go @@ -6,8 +6,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 -// protoc v3.14.0 +// protoc-gen-go v1.31.0 +// protoc v3.20.3 // source: protob/ecdsa-keygen.proto package keygen @@ -26,7 +26,6 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -// // Represents a BROADCAST message sent during Round 1 of the ECDSA TSS keygen protocol. type KGRound1Message struct { state protoimpl.MessageState @@ -123,14 +122,14 @@ func (x *KGRound1Message) GetDlnproof_2() [][]byte { return nil } -// // Represents a P2P message sent to each party during Round 2 of the ECDSA TSS keygen protocol. type KGRound2Message1 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` + Share []byte `protobuf:"bytes,1,opt,name=share,proto3" json:"share,omitempty"` + FacProof [][]byte `protobuf:"bytes,2,rep,name=facProof,proto3" json:"facProof,omitempty"` } func (x *KGRound2Message1) Reset() { @@ -172,7 +171,13 @@ func (x *KGRound2Message1) GetShare() []byte { return nil } -// +func (x *KGRound2Message1) GetFacProof() [][]byte { + if x != nil { + return x.FacProof + } + return nil +} + // Represents a BROADCAST message sent to each party during Round 2 of the ECDSA TSS keygen protocol. type KGRound2Message2 struct { state protoimpl.MessageState @@ -221,7 +226,6 @@ func (x *KGRound2Message2) GetDeCommitment() [][]byte { return nil } -// // Represents a BROADCAST message sent to each party during Round 3 of the ECDSA TSS keygen protocol. type KGRound3Message struct { state protoimpl.MessageState @@ -289,18 +293,20 @@ var file_protob_ecdsa_keygen_proto_rawDesc = []byte{ 0x5f, 0x31, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x31, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x32, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, - 0x66, 0x32, 0x22, 0x28, 0x0a, 0x10, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, + 0x66, 0x32, 0x22, 0x44, 0x0a, 0x10, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x22, 0x37, 0x0a, 0x10, - 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, - 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x38, 0x0a, 0x0f, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, - 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x69, 0x6c, - 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, - 0x52, 0x0d, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, - 0x0e, 0x5a, 0x0c, 0x65, 0x63, 0x64, 0x73, 0x61, 0x2f, 0x6b, 0x65, 0x79, 0x67, 0x65, 0x6e, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x66, 0x61, 0x63, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, + 0x66, 0x61, 0x63, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x37, 0x0a, 0x10, 0x4b, 0x47, 0x52, 0x6f, + 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0x23, 0x0a, 0x0d, + 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x38, 0x0a, 0x0f, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, + 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x61, + 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x0e, 0x5a, 0x0c, 0x65, + 0x63, 0x64, 0x73, 0x61, 0x2f, 0x6b, 0x65, 0x79, 0x67, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/ecdsa/keygen/messages.go b/ecdsa/keygen/messages.go index 67e95dab..e3f43d78 100644 --- a/ecdsa/keygen/messages.go +++ b/ecdsa/keygen/messages.go @@ -7,6 +7,7 @@ package keygen import ( + "github.com/bnb-chain/tss-lib/crypto/facproof" "math/big" "github.com/bnb-chain/tss-lib/common" @@ -109,14 +110,17 @@ func (m *KGRound1Message) UnmarshalDLNProof2() (*dlnproof.Proof, error) { func NewKGRound2Message1( to, from *tss.PartyID, share *vss.Share, + proof *facproof.ProofFac, ) tss.ParsedMessage { meta := tss.MessageRouting{ From: from, To: []*tss.PartyID{to}, IsBroadcast: false, } + proofBzs := proof.Bytes() content := &KGRound2Message1{ - Share: share.Share.Bytes(), + Share: share.Share.Bytes(), + FacProof: proofBzs[:], } msg := tss.NewMessageWrapper(meta, content) return tss.NewMessage(meta, content, msg) @@ -125,12 +129,18 @@ func NewKGRound2Message1( func (m *KGRound2Message1) ValidateBasic() bool { return m != nil && common.NonEmptyBytes(m.GetShare()) + // This is commented for backward compatibility, which msg has no proof + // && common.NonEmptyMultiBytes(m.GetFacProof(), facproof.ProofFacBytesParts) } func (m *KGRound2Message1) UnmarshalShare() *big.Int { return new(big.Int).SetBytes(m.Share) } +func (m *KGRound2Message1) UnmarshalFacProof() (*facproof.ProofFac, error) { + return facproof.NewProofFromBytes(m.GetFacProof()) +} + // ----- // func NewKGRound2Message2( diff --git a/ecdsa/keygen/round_2.go b/ecdsa/keygen/round_2.go index e72b6be2..b1f19ff3 100644 --- a/ecdsa/keygen/round_2.go +++ b/ecdsa/keygen/round_2.go @@ -9,6 +9,7 @@ package keygen import ( "encoding/hex" "errors" + "github.com/bnb-chain/tss-lib/crypto/facproof" "sync" "github.com/bnb-chain/tss-lib/common" @@ -110,7 +111,13 @@ func (round *round2) Start() *tss.Error { // 5. p2p send share ij to Pj shares := round.temp.shares for j, Pj := range round.Parties().IDs() { - r2msg1 := NewKGRound2Message1(Pj, round.PartyID(), shares[j]) + + facProof, err := facproof.NewProof(round.EC(), round.save.PaillierSK.N, round.save.NTildej[j], + round.save.H1j[j], round.save.H2j[j], round.save.PaillierSK.P, round.save.PaillierSK.Q) + if err != nil { + return round.WrapError(err, round.PartyID()) + } + r2msg1 := NewKGRound2Message1(Pj, round.PartyID(), shares[j], facProof) // do not send to this Pj, but store for round 3 if j == i { round.temp.kgRound2Message1s[j] = r2msg1 diff --git a/ecdsa/keygen/round_3.go b/ecdsa/keygen/round_3.go index 454b9201..6146a2ca 100644 --- a/ecdsa/keygen/round_3.go +++ b/ecdsa/keygen/round_3.go @@ -92,6 +92,19 @@ func (round *round3) Start() *tss.Error { ch <- vssOut{errors.New("vss verify failed"), nil} return } + facProof, err := r2msg1.UnmarshalFacProof() + if err != nil { + // For old parties, the facProof could be not exist + // Not return error for compatibility reason + common.Logger.Fatalf("facProof not exist:%s", Ps[j]) + } else { + if ok = facProof.Verify(round.EC(), round.save.PaillierPKs[j].N, round.save.NTildei, + round.save.H1i, round.save.H2i); !ok { + ch <- vssOut{errors.New("facProof verify failed"), nil} + return + } + } + // (9) handled above ch <- vssOut{nil, PjVs} }(j, chs[j]) diff --git a/ecdsa/keygen/save_data.go b/ecdsa/keygen/save_data.go index e139149d..5b1c455d 100644 --- a/ecdsa/keygen/save_data.go +++ b/ecdsa/keygen/save_data.go @@ -61,6 +61,8 @@ func NewLocalPartySaveData(partyCount int) (saveData LocalPartySaveData) { func (preParams LocalPreParams) Validate() bool { return preParams.PaillierSK != nil && + preParams.PaillierSK.P != nil && + preParams.PaillierSK.Q != nil && preParams.NTildei != nil && preParams.H1i != nil && preParams.H2i != nil diff --git a/protob/ecdsa-keygen.proto b/protob/ecdsa-keygen.proto index fcca940c..d9ab1865 100644 --- a/protob/ecdsa-keygen.proto +++ b/protob/ecdsa-keygen.proto @@ -26,6 +26,7 @@ message KGRound1Message { */ message KGRound2Message1 { bytes share = 1; + repeated bytes facProof = 2; } /* diff --git a/test/_ecdsa_fixtures/keygen_data_0.json b/test/_ecdsa_fixtures/keygen_data_0.json index 68193732..e7ecc297 100644 --- a/test/_ecdsa_fixtures/keygen_data_0.json +++ b/test/_ecdsa_fixtures/keygen_data_0.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089,"LambdaN":12961384874459551339207596440355818078282806213785775342648388043059602722762871913278772846038817369064660845093934027868653313210209768197211341130328879664855129901147229478139886612629125477734977232104966936703892389401050632858920253425959764799077033459545539383476971434811275964871534548983750766672520115861254316608127511715120909186915818876509880056231208052258262510380080295105153942894215245396124765560528098088543032820032983199681389377630502693810272249886420412628917630701692773559849432356251989417662290420554742302877434371102841200978891107281847266690850557956285688970415890246967698012978,"PhiN":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345040231722508633216255023430241818373831637753019760112462416104516525020760160590210307885788430490792249531121056196177086065640065966399362778755261005387620544499772840825257835261403385547119698864712503978835324580841109484605754868742205682401957782214563694533381701115912571377940831780493935396025956},"NTildei":20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,"H1i":16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,"H2i":9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,"Alpha":7073137964546302519426197108795918903355600790936955717923736840490732786295482817546181286885485705259790301469527483584427669945842799314651770055406853852732275734013259522600331726874819141516989629984376313964484821900473954306398017682999954174229504658528063236651987893368454589560813095145972845549239634160410038395430555137183455161117726890513476626495652520344277700761372318531991732442923029695918379854101514426650142318224874474725980008331402893988707190510778836547424547034272241175095182865500366323417396500881575168432154152735186187611899531856007795602612877814298712246199637908092122376599,"Beta":3781329124778805698135968627168562375518994304682072891270490638565903398815921016162668916726922361980836207877243235819696431386786182993335163149600007435177418332221723597286704926041137399234960148965357193156048240916422570358759272483135455734754411862846510585609034734348827060942031583563018534961341701886811090344356131522527105061847489994982866503647681842337628828003678510975110957502599684605684107010421879806261007404227541546063432272552677635838137548724398528410425454871871886019590411197377178358695658433582626781842015808404610705006039671313159344095133029530767173526789878122576408306961,"P":74682834361593481810023372364901068308987897092071652855871125748072435148922776019438622439256305770842874061361575542291646920690415340075876934694226424600012724116678454328570534454824214148215599456938258720769517493756120783418012627126126134213332959856945407004391730249681744107119504561374114258903,"Q":68756140947346998421359710991066203811047516135270426947846872112839728963199219078428991392825847385895934224515769850480824784212201628242055180420737700856064230455409099120643105577895376414218231855017888457591638558485545668540344498197465720699981681711132445684644446855255773133247109821728609375713,"Xi":104274657407863474831405022936374567141379727082942638393989568860864323460152,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719074,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377, + "LambdaN": 11177549293474653071315624418665189713993337713857039843622941874160306957967088085364902747849517720743440517302830953051138579651746807742714617420930389650309503693655278241710464997651016210979212033209885929493409146383153599207708708245744784856144466581441743220466219616919761256996911601522586800501681834109899259130011646525157029902225843141562821444912042544682143551822871569167749680057544021618192013193018211969488363602178244099386856873199849559903972108251737064074518638463675191400686085941182304361236989746506734829192715439122617377235049372295864005857003425048565543295239017074742081739098, + "PhiN": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003363668219798518260023293050314059804451686283125642889824085089364287103645743138335499360115088043236384026386036423938976727204356488198773713746399699119807944216503474128149037276927350382801372171882364608722473979493013469658385430878245234754470098744591728011714006850097131086590478034149484163478196, + "P": 138471877344893404159370789990587035229526501822757859715860581451378097821060572065654020167142705751881226541567307795795754556453787479820798906869224173301347040323407967552040744981753930699851014846952012047048644554216519622525433620018996818709915595722104570112100227224200838964291118279693887862239, + "Q": 161441435008996231415312720334784612039135954100605079559541148988213947893215729512294872946103980992641410465139506479495336230229600181181996050980032656040870605910437056126283234350291390341893936504048733352697707355372228187298988223367343157989147855962868420124839578881957433867411743703337191375943 + }, + "NTildei": 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + "H1i": 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + "H2i": 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + "Alpha": 18858838364090642863885976705785917849588095666228659701871743155136601684317810964894679742400230790419638175826964342988428212905959254595173407546805895053786330745340165460694553463541163392377536991660641175897237022612859023055203954969109446792640286924452894451342390343962988697367504009145231720290664180870949856434832856483494341309896125368391263851856768294678821193531548855742172563657367837127288665746010423498741973852504067003546416102179900394146951822904463640296528769107638723235595426905689214122618409344431556974388137036180436296961821145205777209700167884506258887504931650414099345029951, + "Beta": 1395807721020388607680930184209030827500093365700613969502155493249488449992849860280390364865966228533604330447059505111102237787906247502353254717463022142609093764192247298717827205533184352733903234604039825895447596423801220362460844391771945301793470194267343620223914739981523358121417388327197260424941860299940562341703036920419908453786387163801079126606489977202919826930073646290691678464265984379856616991264576575904700336092314398521788720833127622810808359061977538543398585976320757187430217441058126268549625153209958436862012256016152708777056417217721836837172451652818375009579144312797085584221, + "P": 72203355817570341556268501274329294634031812298837400628546986466856169388565955277798327474620112577464264447378774292238887552023136218000748221902896697108397131130407050789391734393692114165353056606118237633402630743076760338865616978169371728122523157624553687814713765504246700845042327860635836894603, + "Q": 85488464383200462261392437232022419586513781844659932053802081982060943846379017848435792404391468978214225030404086996067399126457166485302232651203001726034901523369607803416040071836413188553244533291702824809171117443591934909718462680496629607172987924695332669979894469709968629923052970744899294464599, + "Xi": 80563338872401313102079363462746161154558427022673111549700880302576594075387, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823746, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_1.json b/test/_ecdsa_fixtures/keygen_data_1.json index 03911657..cd40b423 100644 --- a/test/_ecdsa_fixtures/keygen_data_1.json +++ b/test/_ecdsa_fixtures/keygen_data_1.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773,"LambdaN":11965116643641949635885932206652711228069478890355636946335037095857824204792751516547542172691695770762312645774020870995278782091927700853021146858776011618719516091318509819897959624727826767835307287665868805142431572047422950357248817998327200650108462382285105270975278668120496503591654716531547113688656751738100540554882657085156055277574738768917123952100316530725550908644747452231188839176032305030675216428579800880622045367926074519576691554576481478819003213525881378532266888732131750479170727259561318783487243810779611492259253171062407221253763092683460860198262672146170687159308412065832323010774,"PhiN":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377313503476201081109765314170312110555149477537834247904200633061451101817289494904462377678352064610061350432857159601761244090735852149039153383109152962957638006427051762757064533777464263500958341454519122637566974487621559222984518506342124814442507526185366921720396525344292341374318616824131664646021548},"NTildei":19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,"H1i":5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,"H2i":3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,"Alpha":11421071720691985233805931440613725920647192840657306004580627664269869560827359450311849288274035445082830308979661706753108048712766307196692431931830063360703978457192789078600088154454453923447528766525917272869231453811378073992003872441820913146901968708891167890273179426508931612939315210420141536662858066164555270207634588140969207306567894980319084359328176222470944215148990545719044600126162705080135986981147555994772657029718950668109976569450187736404100221957582390492136834255108985799466784705512624569497708820941678094557313288115000789823971847930771259280468016904034040650165223964465502742163,"Beta":4227530880403545440038476922105110261199537465641999998158148101603915605231937688109728431992553740717999358378275263490543703125096499417543757592701897468657628484096430689758261242530422788974112689990440998814106644208884422045041519433217236005763161899441271328933810953174242937025629868477234469201962721397475711644378280986530924591451805074246910811173744333178474233373419231266135117437995644802581087590961012020226698544189434580409698374958610263938482416302069628007660903039729910120878609160294838371096166505152238228269549996232209744466071160336256098002053827877135524242668985610586518309037,"P":69148727022965490791371353344188179096380205628223578363347845412422456543356557096766868185510445198293123561559310892475561895225747211013646582990901153064187509486206820830686069751777027208039340667218028595066917519852526144012481411056284833957995414832693297161887219241384165301228065443379819309633,"Q":70359316491054176535495692674347777118526215106212851796111499381496549337314923687504495752117695325055665155415615099586640262752041948937762394634356663125386298530536960357064450956605539549770693624698845882927874489981293210912747793431816752540230899424105324436139249872533904838907087453451890367169,"Xi":108436151147340935451391561657404920031102047337332505756523480128367229972730,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719075,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633, + "LambdaN": 11149548384683753959909536345964427693394951431382476212824486637166639662173577194891767482894501592632923769491736561113304654428649255652740936202443873307815059847714657568679592977109706651015560214690689655136212937339069634807369601793015618029858099686819476632392323252263171545675309173552804511118866979421829976839783198933240721589632236425883805073524088572685066561873248353382063426537175647605347164785441254273154684838317964316646942530282175152569613324119720579744549643077693243668687563796142806852567297202206874669730679268309651480146932322457484743279008564599284829516306382681861288851074, + "PhiN": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022237733958843659953679566397866481443179264472851767610147048177145370133123746496706764126853074351295210694329570882508546309369676635928633293885060564350305139226648239441159489099286155386487337375127592285613705134594404413749339461358536619302960293864644914969486558017129198569659032612765363722577702148, + "P": 156066655117547640057183351230075495350356142316825067547377754393543605899777443930066910093681837657478671507788811223345523196584148073197438513558182074417709967023704008903516523749705481827574972560536605307636206080536451830747223300432644243815426273822774543186211566220561156431898966285536794218547, + "Q": 142881877955108862679587355347236181918248084143618286682740587960483961744913181178269564084281155215251840517074566855452343874751509878853753580212870817141929571621842255357588173556886625496068995753146264355317764438313808761825030547122983231288256793625449120842634560033161931537758418045974893961939 + }, + "NTildei": 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + "H1i": 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + "H2i": 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + "Alpha": 13374807296206481491319284931462478389081150313034617398934748391838279365678963445052982709178040661712400578194271385041639739779327608437444673092248225889425869931084058794697606137252194936426728486257459599813639550900880213059186814632135388831429773687752862645148877633505409648018487193890709526208885850198888585020481960763849938517862488903130653421409361683089709600158442012444855386481820826403497089571145748850107119386044797645228513219620364496113457026893065701860867477741335749315777762652752034030806884860746042034852060832532514485985063847119794459347519871852244976469331327910669056935723, + "Beta": 3262340784351458104467423909694604400830677971964497353591450595053707634274454986186234679370519978537263799405527898665196081277267534173475752846416889100727717579776456319920757318362222760861605619365780491105556881407714942597509351674663990320683765718171249215990621704915256839730675168973959937063352657479242363095422936144398603651589468345975399151167189765590338576845858724189528604341179745734427902356341935578021378490644411379675798249913325716954390814204951846935735000038628192019773520495940152834178789516649793526167212194647676348596578149160445253010033464451980038205104499023718992088801, + "P": 68068329583407276568729731710165864069486075621928420836903864850732780111932991029209280082807723582403638063419702297869664777253009814409463878784143361757033463050607902767390240950299622220779922279115205795314026972769857896418814576062358987257985895074310733556897802991485567565660699483070324349291, + "Q": 75297785887327266806687312250334164199326086133440153014927547186279363068792919024446621140166053311189422468911880227951923150860829149160772555870121798001068745287177200419011118029053671164451956838524601465082432633845578510193567724149539728288554427812158517690154278784325025566017726692383067465351, + "Xi": 78302203399919507143585939668401747463925907910124666435956801364259335845750, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823747, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_10.json b/test/_ecdsa_fixtures/keygen_data_10.json index 8802b4d8..1e5abafa 100644 --- a/test/_ecdsa_fixtures/keygen_data_10.json +++ b/test/_ecdsa_fixtures/keygen_data_10.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269,"LambdaN":12937346295638194970454918410966664317170193845880105859928712423956355343601327604449568075921132974447501127186859362352104860972148571531224089536229752013468020736712382740319737636095418633286489368631224990383191991256810799290330670979067573785561256815545745988095831557669731865312118971050488824562167648765850781612044921350806690323251805325507860684969277622397191154699981466619445268588090978301166006871082532919789287203722593737752225116735709772101587881307265347866706139907323366118945239783154641985307607291011166175443772324952238743175616676430861961178747162388784578332883651525950064134622,"PhiN":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124335297531701563224089842701613380646503610651015721369938555244794382309399962933238890537176181956602332013742165065839578574407445187475504450233471419544203175762614530695733412279814646732237890479566309283970615214582022332350887544649904477486351233352861723922357494324777569156665767303051900128269244},"NTildei":31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,"H1i":20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,"H2i":11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,"Alpha":21037127350648374388265281801088652029507674521677932668096972451285996231583372560390764495469914786126011413858799924924632993629660624940171061024112299251424189717568873729271177196160837682095329312245312789791663239525186602963462814228741719981597884110393167183666436021997307470961622021308761789526984374862534269454240710028273269824919578312303738857215548062403749020848762321378134737482162867932557874194960936213444699033810544340776505472623923769317907668875486466780709709456578963447347288923313760688176855605033192292787928419913044571652157610603001644061045928905603168705318778522852235459520,"Beta":2620784159511461367171886970842804838285449450280528796198270706554768448066983426458938477218428089112699048655178753945042334912939431087154532665300910895985793015988556656392640752110694280023897672499804763851086549400515230420838385444401894283066443786614210233997085283270868429129152763086524741054653926783660179150394690273847200276291402219580006125344865836783236819192404514394880954109676925225775777662427087047027019348137937514179396480469125560039235921390200371699649598384379124973381552258204847346718889984433878301828063295658205048621272653158564538825996157040581954613120918284132726091877,"P":89475622537762675728974568335049172002891517866786195098747840534379383230181724060087158574801781737829720406781235075837537443923155550248596886945492296155799677292965893054114630397300932796636262282815163811177779224502417221555195284229849744490375693969163252199165060227179874651089638745637572151841,"Q":87576527499111845581088108234976855206250186847569142434666752945723582872666665689978488331743553189055342597852077583988889171934553793305799774613693851396402205385570653429086994140252313844417891005401224274265208415308267321557541823702935867617565116486094315681130794016272990743791558000742337398209,"Xi":108446049354585009563599188857823197198796742426858964353445534150139132351308,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719084,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549, + "LambdaN": 10559514439768905185084241692540705439478051512599538167424294391345345150023548394207440729602735594007032043213462357711437751327865473176050111664726511135981840256815139256834010694978802569135145415249940190814040836538960440114150787662465097894158902009881304111287735932920079160083538974166661095945869899454419861749985547429106424873932571756283203685357077423202401689788426250524392854141010427155489896022656631129442126752823937584779977121949688700521070584664346153316052154232649534890232171705848678161430230436427854196051926654313704231073884428626879596778966702007450935889206615836942968869382, + "PhiN": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191891739798908839723499971094858212849747865143512566407370714154846404803379576852501048785708282020854310979792045313262258884253505647875169559954243899377401042141169328692306632104308465299069780464343411697356322860460872855708392103853308627408462147768857253759193557933404014901871778413231673885937738764, + "P": 153963269202109176063445222306866740891788732045079218149758448829397455580480478085696327631163692138300185305909770677372667306167593209355441368168966448497187505833239315607938123846795169059776243889617098008339334138575246271958012794548418900149338038403351309798013351737260987594206763941950725931823, + "Q": 137169267637559986510256762487858101215008657251668511260073924977301867851125182519123710480678847918939551461406161965631785677555075567285656170731105600049026625862490244203253301351341340954756983292604633858725374568456378192223036372726399443729857731879536670571345635929984845130987208177071434633963 + }, + "NTildei": 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + "H1i": 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + "H2i": 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + "Alpha": 946839773479074066307076396997685009111845793152548972791977312272144495980407596076297574742385251426168856985943739344805722059549085255764557102980360645251930529636068966326495022627715846645110869365630583245215511995790121869468451402665593452218977038873156202916681229006901778861007169667268450278910405040028972239127615443644653830137897255915655417178885012383144316365371000668631333378028960065073535869818941640321292706765552075671453113165815787569692482346129675821571645546453756013233080731188031698864127021994932490208116019371100192548201497236987215876972590081966030925013039998477949194627, + "Beta": 3416537913069250834999479895848888344414593405183129347988787177350973159124801333961351155446226808202118545317737565075770036748384067621894911849289031802475190021422456900138951175306054129820299493950997176560860713116088056087786149500019225080203911475431386699969611254502262610298740301149272372156948589909444717524821013755268388820957801106961452493319658888067245796135779609138878425252815435287398510188140740394170468453948505423324319650639061269292842479209945419066588086615448890140834060256363280533828297420581133991698037722360428321224090888414379332448699830395574811872225607134725753494408, + "P": 86735366901446406581499914754327326820382402082793441330061950282420979360763013417603597157601150632492024501989066092348023847568516571641210825675350310628846463149758030760268830263352755775195726218303135561189926118125479031640557733067349386433291293422160592672441878841381998843308973635639170815481, + "Q": 88088254407932915710152617328349945509170901187536462950210021678523721118183791803492764388690298768045007925963218691928757458399932237624586049563140111220017366802172234996385247972268183927175952278223674973873213596477113216179295156736693281705950055540731345140917002154588473491581687749941249479969, + "Xi": 88112232028702007616855888242615315926957728473082069044604436808371194479747, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823756, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_11.json b/test/_ecdsa_fixtures/keygen_data_11.json index be6fe093..ff6a1670 100644 --- a/test/_ecdsa_fixtures/keygen_data_11.json +++ b/test/_ecdsa_fixtures/keygen_data_11.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417,"LambdaN":10546507513815870011202221807048124261388116621758325722248518435587864479390441534429380490962292716096493137831435064321970963632762119299451530649897571964680197855510105384912382192359461449489659353367831281819429656012058882043588408464550019418412582998872587929075695873776386458179298223958290618068487947087686161356286780272673269607170463788545586380498167745667921237901923843905603453938275954325943507348616895095334722096529329250818632967769497658026768061409834060482043020648307963179655242846091146043826120000900264976850914652110038411771683359426600949891088091169486185937559313164661188325858,"PhiN":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236136975894175372322712573560545346539214340927577091172760996335491335842475803847687811206907876551908651887014697233790190669444193058658501637265935538995316053536122819668120964086041296615926359310485692182292087652240001800529953701829304220076823543366718853201899782176182338972371875118626329322376651716},"NTildei":21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,"H1i":1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,"H2i":12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,"Alpha":8982739081272854541934523319427253588467492827803161357301963917513000963502541842905105681681074542212337044580953037002586978836568075556108242392397727337702591496849327297819763419676407138897055307945621109340979072527552512127881185272498952674704564803472098350415094428678177669943457961835371283365249952737803750391108969157864485803552872413708303131501743419305692945470398669424157929027704215436132973083623854777821569504259872417560946709889391407336129154527987375049059947728682930824038229884743173021842124239197256298870158837715736105256108408298704883376201253985919862556649612508469115138487,"Beta":4088067740459137808811076309364308166144143936592138527814322587742015626072756647472779645603989449536339941168905657232708393541004126425578035477732974993408835682636005934904957054707702135364364310109988068420346827745201341038707055112794259658052409869594879856192168933378436341095162370493973117777172241093243186871721439379872753248966788944214638701318228541853354496547849080235214498578470404216601362453859923551674357004020753791695416051418222625969167051843946636012205349176289659853283079365536526161184566585874828283563472963538858158945643893545504662663563024628528370244945396455207554015913,"P":77114081314434698284625001706804956216657525881888645263812565688822549770219689367039998651251855343829818986309253679847986215016450796878063018578875906149162023270434324323737706329378616917536663482134382721880273717336865671785268763258506235192131065212101453446219297424869591612900260786389512977349,"Q":68591517486487907148795855375453344498707797847620287596642332488177490859641238415144040182112248279567876226849127462552972460451311974882696902105331891067224402823346011141231030998934071096834303026588137694424227553002771316695401258297529683480822977446161175655722910205858180225173139797949568476393,"Xi":102417801318300522827543028380237405039470935189878693372793819835767512967730,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719085,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741, + "LambdaN": 13825229229686165962797756864182070005489195923727752994146722276698256428943869971685688950304888191317091277454567535184230179103111422111600434138651169091651387976970548430852662448388722967697671756327808056202780300294153564665823318969114476943917421268494324365554716084401054119033267264004321708261351276400586265329704054821392598883935306908041323854611824316404808115702810196719300704837189204521731242994199705339307237483646376036631982236830496434102701458102279895729476048066909296067510436329936268785199232564111809994215935721585242527290645755070343545291469329880779349404500333884217225566366, + "PhiN": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416522702552801172530659408109642785197767870613816082647709223648632809616231405620393438601409674378409043462485988399410678614474967292752073263964473660992868205402916204559791458952096133818592135020872659872537570398465128223619988431871443170485054581291510140687090582938659761558698809000667768434451132732, + "P": 176122555676251184919901014632106238828180802154727549410990125910212279429721351372753676188805299271893969971163213320899621485829431676669345185682875438496080563399599222365438769247997935846428295703743043016242545841109866980745856601961046538241487709114390551054223684067063438898108606782708941546783, + "Q": 156995555471040614367343522695428152176315246958290308654182617847676697609711143053634482718212418285373966840701499487073615751036384273966118999345514827150059106057539649697979132796668752415254558551275311491656668984798685938358785908393972882455205702805522033265708861683800598147688097959201704580227 + }, + "NTildei": 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + "H1i": 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + "H2i": 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + "Alpha": 352801115007853878935640180358810753174918374924371651504824538331072085446014831602324666954319274802400050167724786741566114528832180452267692975989368467101728833677377481265526579226316385705162583395340343446832698631657874819443363547999633784302111060758237597542199584483222105888745719261922492061995034908131973004758514813281740354987497280031229489152583763493018463135155104615300933670658397163970911287535637843747125902795769606632011792335539268986406541941259353510329251431702567610787775975460079539606642628177694846684605949124638274401844829277424276581887797087730833690752617807411290635843, + "Beta": 2516833029253275856386273691020048984824327063953849095381887777057052060773402048042024938746498703392980679332098721666777684085331987440331714849188647242120132978470685047904427468142732234128860836833389465684562692748892404218058241390010793967837141589918016228255485581073135460481449035798264324616707875521026707917165477727303697488196977943308593050469464490444862277741010149626892084772595776844057476961437009302605929780209272914506008878829125620018878686295637406800560168033301115616845813873891608176025667036768001731603069402272875175158383437322508489544695724198707642011078487807364304499314, + "P": 86607304238469267713777646332184075973951144379153857427844355149111371917714534514259692869393992709769881315447416950951142142410523077179355645753540221951536891532214097818585511810329473609601183939983044012073567863322703934009218467562363227364758058398144273686140097200638279043372756744032841599729, + "Q": 77377829071055137814397726184782677655709732456181310600629772867272846123507129641919775704562286993272113242001861134657348593960832975286117752220232507748943391380812519552690932353011810166234405554912325347335023938431590019470259315235076986824383523333387761814642724582689014270091402629267460782039, + "Xi": 17383168732071266711691176975213347962237943866860655739915452494470465616754, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823757, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_12.json b/test/_ecdsa_fixtures/keygen_data_12.json index 00cee022..3710078e 100644 --- a/test/_ecdsa_fixtures/keygen_data_12.json +++ b/test/_ecdsa_fixtures/keygen_data_12.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809,"LambdaN":12649114648698023623207581714516273068569857863779922195592008953473652425116070617022661604703735736857072926318462134208433137241301877070707804796110853362542703529985819061004956747982271683059661708609417319456940543716300051132236894264268547834389206215688928033556849364957378572076887917893156651435477228293403914365215264741429649347268060372525691649430330377699798361888525573305233625250157761053388278937429245829461566805614221380333617774378553229078900524678009284535438133006016674765429769683682079900938097920139703510704176847513334862176642889026299348491375632102840877200669005958046697790202,"PhiN":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302870954456586807828730430529482859298694536120745051383298860660755399596723777051146610467250500315522106776557874858491658923133611228442760667235548757106458157801049356018569070876266012033349530859539367364159801876195840279407021408353695026669724353285778052598696982751264205681754401338011916093395580404},"NTildei":20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,"H1i":5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,"H2i":9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,"Alpha":10928104431684700417733708045912718965477943234179479443491190731544809809548419404610396468679317867934062508085119860257843555533387677855365089368513379664989312324252611915835847145756060080535374821786589878766218087778904579033462046562486236127051269526081610695928619559821958782154372239474927531246325953701149934936548137645974193148212555504579690737345202947507671469837555832941181067968832079002227290222942702339045018469021215049494336486662845896636796067178685969877024691461733107137831899861413698716405688483348579257680342148569869697506810096068917919901564290302880777240405235663393765269533,"Beta":1039277948865102195475539899126141492740216541424684503873954153083419358650544971410492796860198762992289579618709558914193861671747449586172085358360673538599436374468520530289360591209565194471715225795411394515219778646132112107790103299234421930080366080710312735560185886428716772261820540535067369856191132935335186343852015010793177174753371077193401117675783730891727725391088790884639347301233244772442440837288266965280260057843087943863825869843941645123848639618967273908660256558573601337500018789717965291574233171006199140960984549962037285035967151599674984262223123992140632826586419159821344506405,"P":70324225353872584915029067519484692578937467637617265785257105453146632527867665892779438234869979809458857178536106434306891723841620774429231578751306065484106286169799381617311738439259972671005517221188286647570979731216930705347454132046885393640921962237344473096303381845086112714244503031607702221919,"Q":74195880159397447403194619178745707891408299716844504567730537822187743527511868400500694547539646648063355579205522028136081462413688292178457841155413518279159317526040104802934439812496669926481648941851098394176177726278009206432599498118277852440356015364639423273805562934637090452276793752050597938721,"Xi":89972818073747572860817289983108159172128213945325342322372458837180490108592,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719086,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201, + "LambdaN": 13560372297189179901497059866955454448520661362805556518802307639034309617379478426539865614096876226729873630249601208856044422692010950958750323728122406377641438901105751174672551886495735423392044724431869786054398547067178747478845461961887796986726141478951002311334737236087586319477863046042893416118147752359242628179575882077331099964682240370000718401433943250432116126653118361121773350295279593976792160285913394352096394520158600216878134006395669943451992187976398760940175832804769824207137430424430094800561481027933552747769245703618894581698102845820031087466097487574364221153629772108246726162466, + "PhiN": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236295504718485256359151764154662199929364480740001436802867886500864232253306236722243546700590559187953584320571826788704192789040317200433756268012791339886903984375952797521880351665609539648414274860848860189601122962055867105495538491407237789163396205691640062174932194975148728442307259544216493452324932, + "P": 158043195018688735296261434664271897670955921384017538955689248082641003786183608504252223169504062537075208639092126077966476528568402321910801598405592726898802413159365663095778291034915012258135138638123868872415535610611225753161218988026556886426684891394893528554194563915487657359185032348326588498167, + "Q": 171603368251137354428969499111198693344979269577278759254610232162892591344695057725918265787139634822141330755187008577262333699164198802408054816038103969723826072935907176310459663423638001008039371001558446750592886061882050110395700901590941081687673214035211115211096748474383440072407442076566848732103 + }, + "NTildei": 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + "H1i": 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + "H2i": 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + "Alpha": 12193753729442278844645185338520815849670570342534619802189276406683299935990393969477969939811157836224382619800388968606462003421006475801071912754705130397700567372674618536974858367683751687483302355335175002664026050014769644093096957486216537666353565495246652695271589957372687452754284573764564113079147936356869690753834786370733417128285124709417599757879166739296020392032582288991110879382577636283287157376108757913542557736655298060081817729099341152531844968921358197453161268262825252238996615024061419707948778169612088445414358459989369649082564891367322692946985834946585301536861744160593962076569, + "Beta": 926947236013740167023200845301692919412960947834619055462806971149231270447780959173851332307390647359807959061358067032558753820407272153282128257125917196648856745689957570672123153361286390445529770803236992126243990085912568668130178025334332132031121219471585483462718256031596493030488547345977443846368200041996872074611242543063836661532128255649473165645905707245533171638733151239989565324186352303606432159172733374002623971811727543451449799250765497289388516804244466655694781301693741645515767301320434313588227852982647572535881021644545953373459878096706522790279729085547045780374773609273032407199, + "P": 84043692381656726027341212419569901303114630513752430957217077102005026040597456915581859210537449518952768670029908465647581424997112779317386660762058207480460057938328319550225869308328078831323643332354307061512316928460858378445049069272200184523092481845829136657329291887553899974547491284737370235143, + "Q": 70363208419849746238378543951650702378629184034194827667942281532557571393347150438086067264921231587404570768196719566200517777070111272231592972022747012510056103064039170077412408306656340218653457134021197831650540376618518194415508459443130185588695325500426430325816835949805830522383189138790176726729, + "Xi": 1533067721075024465818337112662747335106557102850329526391396152484160262333, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823758, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_13.json b/test/_ecdsa_fixtures/keygen_data_13.json index aacc18a2..74107a15 100644 --- a/test/_ecdsa_fixtures/keygen_data_13.json +++ b/test/_ecdsa_fixtures/keygen_data_13.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661,"LambdaN":13571101219316393581063299746454254391846382607874278755157507067004522371187746006211197952896147182100688221129008660504134678206660079403966081432850020478872078723088081223695149499660223031248418364551057026166479307957653596858108143518499103662206671168954023951044047191446702792671415230358167948916837711268075399053418040154829891214592552482885426306147784257234812670913343010080956986015284574250103949739312308203104041491807999523209740028700196831425887086905374613986057808037393077464321231155847945427967888532892807462968077262055976032314700802512107916338082446812567874049405612592804337006462,"PhiN":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897833675422536150798106836080309659782429185104965770852612295568514469625341826686020161913972030569148500207899478624616406208082983615999046419480057400393662851774173810749227972115616074786154928642462311695890855935777065785614925936154524111952064629401605024215832676164893625135748098811225185608674012924},"NTildei":27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,"H1i":6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,"H2i":509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,"Alpha":20623704766878122337549007574908090088690796615889949450705841268663171711097312565174398770505203248025026977276335309665015720639235703441275952467455766517692617308081829097800698675051522381711572029274302741637483073280130802773420001374626178642984195132958144725140910950079169212216091746923707621973039781859327148198118700478560299411644530914773213693444305785482088269512946803092614958209239401164203334728489935413949155720869394777918340330538096788082961781569183323103824018628603865974398525353826007343679941330737025154856165843997482552258490422646753286256746834333785399847650909908666810949513,"Beta":2134438644469295824023682300371082913938294077901293508338627609104542199043804994160824731329846339134097803622375661080060513585927556847874002589903510525409599636634800005276716106788143807934181942901372095744370506968849866207024684468862669886900409322684859243657041093786703911389553257415617138088528360801815368494147340023428918896787940104079769091345127621422199790413675540449321224966551818980957591788741707745513983816458179559105461626376316735442238898874272884779136871401688685817539439220607389800148141968029429865431783570210684593414957734884702257151394521913144505009385547867626485341410,"P":84434062632249294866734127047501674467460960025048034848722769415334290495803905529887430668283924565274108296030958074723716196932312813896152481940807646783104585034717436098857469895620897116476778269498701747487363611879379401812359899149307546301442230716012471742728381716929375375626022251884697815199,"Q":81105123182565561609142942463971374111421431815164342763025058855414230533849902869970658572183514263008560797169745491591820281032685399517330323151334322395143398991637422537102347994291725039438558158768007590121731955245313796180992192578388209147751434009364595965945480269472574389432282352757292403989,"Xi":53517375537227730227711555866101191647372612878766179831710016528404264411014,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719087,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069, + "LambdaN": 12395776476831177409513973366456288964047673167675070563858771431385120216487415818547190796181014955241420335949618678934566005662089777325325690919552278459137637874020901594697588993625301019733804484378187037790822809778985526851622696633171375306284715171950770063277086422877253350267513510813312831197049543248713959439089667798573515512290311110236815774695587822634359048868313624369548015827037588898484608085991964859901379890701355832655834340535243628848102081230756760511964697015759055572900311741420742257128253574196182366891035532024556063722893512285300102333086375177758193705089160098835270998622, + "PhiN": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394099086497427918878179335597147031024580622220473631549391175645268718097736627248739096031654075177796969216171983929719802759781402711665311668681070487257696204162461513521023929394031518111145800623482841484514256507148392364733782071064049112127445787024570600204666172750355516387410178320197670541997244, + "P": 142573269352184303929005801299762084962796184276462925934286173348949405310258684956533894135591437492257292216022412698240382761648945692657071976251918068814873067588550367812974573765160888691455220770693228101867124434850998049570381207150343945075093813771227825192424626946035176466163150498427934190863, + "Q": 173886402874176175760321077693049971905897884842677367794877241206763564912545391176627498334059098915721891609338519283668583586241563543048342750877591619452254254671179026685466304291039598026858556009401842929868897561572881304442296626863739724944986704135624735208720360878525930567862237063893214374963 + }, + "NTildei": 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + "H1i": 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + "H2i": 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + "Alpha": 18226130440557636441969700351554814682989315411844842313231531840771365790117480540516857426938551425194405756075303539164319774006944904789198966478383447134821109069864475112876804715497920307507838003728810780077437762490597463716072744933060830935689257268776730398059805008557259291949864866148504506276120118127262125733594222838306912479284584337351051248759223518723445584661136024258781811849855323566880926038957923932422147646800860814548668299629761784959024757811666562964311620208044479666101614517898029505908054722568521900473915134646713648988201905481256844000760724089200580201445428748160720932376, + "Beta": 5195352449517435283031136675466498161975313114258736557395772130809394217153545989153494784088662837830279930248009592944808021857898216513095508693024269143484393096897797689653050811783273831333434872098085151593715766488307313857911219234555844051478866347675018534059034263838956044761324199986738667607514013308564438572470756433111776353652906863230866411797122854267636484621188753403188118703552712817594059056479293572022497731015688615773887989106200627671346736467807871745872455903224549877757569651127325876933439216843025564882137769667239174775490931422210735839594207578261230254162051948268465339634, + "P": 82429586843132482613858086754570255561639792751154550221804576533325037853142132732638671988965200979993243802705637930530173959423666938369711997926478405964682360294406975603595754747485779392779691414165763487650082770762147782721454586317185728697123665847413389440827134907378653606198093539852153458329, + "Q": 78217185276669354106248303879749110125294388809884685981222450639574029589037686547652415698150949311311797112132906483817585616040331164711052037091844318702435796775115866275605942541512840791084989505967085105674348640274242821832388864404833274519818750682515450524122664152919476795819608049887642596591, + "Xi": 25371983894581094862153616372322770140461333419695928268984475593197212965018, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823759, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_14.json b/test/_ecdsa_fixtures/keygen_data_14.json index 20527681..425d25f7 100644 --- a/test/_ecdsa_fixtures/keygen_data_14.json +++ b/test/_ecdsa_fixtures/keygen_data_14.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269,"LambdaN":12253450205082539716456939643369121490778899723852138854566281876140534442959382122298551948967125966812722062487226765011846883461064358792014276377564025593909794705012352080517392679117767663847620092296508916134686814531248662325673293460839985537392726457477262226965960012508616936883247666275717651348116372663842872863071832157833017121406200602755596549883695545850585173588836706281696405599929322690930495753338108619016797459695078085093649077056581424010240839957311466361536916872369469960213820910516459546594419637157627541316838401120186633576676342910133635121764304703234642739813331891407564274622,"PhiN":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696232745327685745726143664315666034242812401205511193099767391091701170347177673412563392811199858645381860991506676217238033594919390156170187298154113162848020481679914622932723073833744738939920427641821032919093188839274315255082633676802240373267153352685820267270243528609406469285479626663782815128549244},"NTildei":27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,"H1i":12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,"H2i":3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,"Alpha":23592449100932472913723742857452632270074531594269873475876154898487607002707603455504298722801842557097352502808278793443423870350856827240066919245273882363940309350232850332471995617344108979166853773685930462634214146253119633340947819898062529672245167160007268807138144539624180025351670801118198531075204255247126308345795449823534271262263486614207344172646432428907704236949823864748420366967169158874291878685404852674422091768851856991748813614092635463873330741080858300846337619241392230072459103124144808794746215977581754667719797852899975255315570203083936612691054442685481590296903588735876168214337,"Beta":2241260463476365839799568863666806611085184463149875551694969806791484248426385509615622877972270524882083779034880701964004245980843840913039001559808539054807539033805465324977629613640178362051877243479317231422411219692563527891036005110964929794350620568938051017549882939734747426110215780783480223307968812509738017942378325388449227137122385546108645155648901724542330171120635368566693290199736319993839533775178088480549463950008022592669071451322223420675273208102441434165424242724009171778973745680055455801448977048396262723203188999014970800174920188313009388787571643967281891946193327205659520514382,"P":76573618811417536581498533881386067081370381450988661304747025978923675694295668315347780852870082142254844336383743963518818028779549875555142979756125647789638962006183819544756411626025408413124762547524016076213547804003255419222199325882205261142348250025157127773558052680528691993151930812783976282683,"Q":89555837608755003647760630147777125411798552272806968602298714793561494014623739633416383797634098670165195686564612242910539060062849784326916854368948229131084118661050489924174972179572972370836221641544008587880717670092246987229172759902690548295573807879793881597002868986721060792913966296571951151403,"Xi":37752810869620181018808138792926654291600871231745367034846034481142697077018,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719088,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637, + "LambdaN": 11624195717913975872698637871728114580734073992478555097110530854229632513624640587328678228058262385081719565388258864638106956099981868841470296521994728065922829784743975515096534590368301826120188130305018576330564725432200146033068742022824236474239950962242613977155077735453837971619554105555616736062748493140549436055626914046020623327117293645857028662360544013710513146129402161728807121667322196267876319504633870004116609471663936480795898595357485162004580889940276130768110464503867896109723385085615160078264096983544351384749546933155776016252743130135428520773030318336772172782468019684500070328398, + "PhiN": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125496986281098872111253828092041246654234587291714057324721088027421026292258804323457614243334644392535752639009267740008233218943327872961591797190714970324009161779880552261536220929007735792219446770171230320156528193967088702769499093866311552032505486260270857041546060636673544345564936039369000140656796, + "P": 144197502023483129663365289978977831989171000475247209614057632504295382583699888192953683988692139952017376877143024517454060840216387106607207553002196893564025543304452008138365539407424963603269611659352336081079109219434416667720602583017384580369344929404096424939124195380447226279038874441143746193019, + "Q": 161226034498446858477201933352274497536963760010458329313759215264081085465244476412203941228172736395293523938252143412761989499962794409055260972279742413204905364752557544075926302350257804648244154678332550252632158480165918179724970083576746070876332644835082015607982339087704549897607740532181440222823 + }, + "NTildei": 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + "H1i": 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + "H2i": 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + "Alpha": 2638264320539823143559554270044355773751280141298427336501406101681728720379161640251025146439186737770839776264974836217540321737257883246017391743902557484055823943107933019636098560879493138682057768457883126801875523572264568170112933050817123053976983469598842260005377785811779140523314324545405390639195403713549073356877391090290996036214688090156753457106708719259997122398114774751767816680800754554783080200673447321024946836467974035763038678012158477679297053057471221050165698519527787851139005262656626312273700629301975402901146968014426072517363729997101895582750340735444785274505304982643678317575, + "Beta": 3089880448434547503020009602359062573794722903098513680756964628755715728943384587436242764551666941800526344345903424932771860901916446435707719960247290747842967596996837303443545100440702659022440347260562966538385187385479043847096685467525354955196600301034682271040460526574891976389021595124420842658481575736674523617564118768122174738755900113578330306462479225682079270566635099095809758354434431807990153615071264051364628012311360481634052984274033725175935929995690314719912838931509750739919529118332048410475375233004964211897589004087455449249216865445629884190727334117066952118522689364304595545924, + "P": 88693333699207299487746391816208249516129262722032680965794997994606588130834173410171061378761343726374240396430680878098148367967496311896087478761897051126756480687563670428176789910568131822774037661646845086586307624849492751694608653222549226582037417559234673534070787895619814410232397008844974798433, + "Q": 86873514800832157077897895711744679366831994217071413133703747834830195364681334048773723033848093167540702362137024603902833936530143712901034697714794495222649191191346249174277011607336024882027660779682207272253209647087915350698743153456410773479710690372611721355900157187574224948140231498557489619111, + "Xi": 80700841368173463003166291959149821840561466926465344681985086367423853605785, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823760, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_15.json b/test/_ecdsa_fixtures/keygen_data_15.json index ba70a16e..e67f1e90 100644 --- a/test/_ecdsa_fixtures/keygen_data_15.json +++ b/test/_ecdsa_fixtures/keygen_data_15.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253,"LambdaN":13347483383993920234974669432672273558741670181415825113607741287682703006318387010734324492487496011371574712781743396453795834125960367550699611855608623912018236257065307696868702575066704653163305456086040608108165756853546482244497474825921391171352209106481886295143189005040612626769122610370122103300913159964354332532076205041435111992248854623743090567577178988121521966429506436140036516128278726572472816788919853719327761052915837349393803367833315234616518036340131068259192000526319025941766887722302969983197958080668860232818533576805109686414181286841540121441545479894659798883919229345108597362094,"PhiN":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206601826319928708665064152410082870223984497709247486181135154357976243043932859012872280073032256557453144945633577839707438655522105831674698787606735666630469233036072680262136518384001052638051883533775444605939966395916161337720465637067153610219372828362573683080242883090959789319597767838458690217194724188},"NTildei":20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,"H1i":4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,"H2i":12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,"Alpha":1023094435758033828727853673503518021788995151117737839037946070482365553864568465644315553393944688902963836968988384394990225294732257746530227564851881567553360209237306936432805791479779939304173051885020337541848026131672756742835407070706738162837318162979809969804628526579807595224118894371555509059772618621915045040549576607268863097614025818155830682848815990351043703431037783534811652002775425789483463041920452457651727985999937388511129338606740425246707572000967994243010989135808378609628036864009180461112437457377955189851791308263759606402600493174816118790436037518160153786790429203708552207093,"Beta":1860061131643694695817560344647590137360314027299488290887477742620381398776184472673255174639087684086481255685046578654083161365235402325565620144261318703584722323023279097551178396140925876285390518555598774688241269768356890112772806657331277312045251521880326066666351129892396108778847150820144149152581979364487255301593614160060327670391933043996471452232518577991688163211300227104423654122341733610655802524691112957537427486265418815936109424732639273876045951477526099773842942727702599387335732909803482290416333522979671661580524857328538363407357006870364034759819132607071996003954232200419270251203,"P":69330825418177372200222501502021581383611555195597384888520537040371359962817847135110190227945281924750380675981609250217403420263772123412474082924390976121156608329083507069278289516288582401929390037149828203662253264387384968411058821157111958322833218693407365450213686462015463793043191757673407907211,"Q":75574524472414293284572575597782417204738057617991087888531426455007056011933812159174025765510359900845763821183521196183207302435565494366137598970419939852878609118141337998253014974665219517909225688756187523927503161680277043161036726224130445885897426288202048387873662662867749009811137847897584430653,"Xi":97621681963721318725701239838569490337028252181680696064833518340698211458725,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719089,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621, + "LambdaN": 13196034524218989818134441033751768749729213869194575484846763901987198865322273804360543413127888844167159582220497459652708879040355233754291801434522913827653933283822669126048993870132276072733407371138994870007901524364755724225427347983841969485860616357623376962140143459030026322745863229448306478599503565732893734065330814598025792310400844458168973319614209305717522016543214845577294902629129315339126731346530277940834085337465598782466118000853092568012114924044992261189818750195371028713454584351231668918876584854713170087159493794525512432231523206849824359550703957104322199229474600614215652314822, + "PhiN": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199007131465787468130661629196051584620801688916337946639228418611435044033086429691154589805258258630678253462693060555881668170674931197564932236001706185136024229848089984522379637500390742057426909168702463337837753169709426340174318987589051024864463046413699648719101407914208644398458949201228431304629644, + "P": 173963486966359480595627188697314925022354468761956805742821970995615049591567876346820032202211086551111966141348282364141635037247129986947404800410701266374621792729232465268728926681597145851638301049446422083692857812090579664239137696758040145517653774800173405802531238540602633219856772036487355849939, + "Q": 151710393420325013777002291123638186207350690634398071398545630469672303205609431290549434997833073016740922383910431849416842055152653265637985690940462243812477565412230133557946609687525892646363655584670221451935145738745877977736862367892952983363013290428433956120284998018394821583463646063863066414039 + }, + "NTildei": 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + "H1i": 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + "H2i": 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + "Alpha": 15420580314398441245306727509189164753602947102749838037093192993607047529425194346616208007542717697172753049105795522869680578225741312890658307479454314768592885256622119478352646160451496638086869505082154366192827548452264529250215544419920954767025811992674367672810057234135716504957468462406158648941595942275070069307407939091799001918047926958756468513578520359638327476193025995696705618495057542278033772115436322507442192945710272322352704161687134483891737905763593671282841895497288818324437494782386689841551983702982508321979316390799618511320008654451499568638962317143767709723567650841374288167878, + "Beta": 4498837478828710520081261525871479065733540738048996010655807918416191772042622885743127679068276633941588359802508566834633603531418895543957467802474630079224788644516533756223879600376334653781868413077313139801342836810583367943196028013593028560490047596158665210633286521059867625858272219750354584245177871633471065299246518508895618876836259405982490280811947170893946865197904073866340303296966040746591880942618960585138375734871533444622497916714118850206859745825089949527383805625439664477818144567644001512052892920191539703811453501167910969760938434742981703835468936248747051352388860339257562202428, + "P": 71934225252179070609504940085028431935143338773492380149548679506148597141160261928059350105296687938419136258141339237515468741494668673688160482188851337323178939541046281088648431201817717656924056636817613558305071136636409879647479224792242906338434571239296439641723226580206259839634739353870532331221, + "Q": 86708665265825782832017549669153590491930876057836772713745168501945948254858818403417914154037038480973244786368932353731737411049951156298254383621709861669541659257334184431987541027123164148979058739852672822431718323710372471627896847166553165846993187015203670086856365448229424657114405711528775434509, + "Xi": 4786587319827744984754879262854854765771989738302643692120783986808025721675, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823761, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_16.json b/test/_ecdsa_fixtures/keygen_data_16.json index 0c03a687..87a55f27 100644 --- a/test/_ecdsa_fixtures/keygen_data_16.json +++ b/test/_ecdsa_fixtures/keygen_data_16.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493,"LambdaN":14080703391719144888391270757775116117109669366091131764338627840431409285697269918546205639954170297928205809280176048353977889056920793287744763055879254972345503433577571804837110325396908749209586489914514301023124798573753810649576834881020212122170777128308188608559781762957925859504660843153381803836232469296870102057294666795757897601277281745859883643025151511641434597782651694343303915206991451606118037904082808616659478582872784574162747857512040132373201458220965841931887934622687101910213013013190197073241641749317854299275685784608327734046731585020591921982128402275131977763464148783476243911014,"PhiN":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672464938593740204114589333591515795202554563491719767286050303023282869195565303388686607830413982903212236075808165617233318957165745569148325495715024080264746402916441931683863775869245374203820426026026380394146483283498635708598551371569216655468093463170041183843964256804550263955526928297566952487822028},"NTildei":25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,"H1i":11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,"H2i":18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,"Alpha":12729480434100385003486120189380464464368914506160717533174707708617896058043344216966394691352291664569500338910373884037086128584678764290991925435550499609003366477386555553049776980226661137498138880756510617706047001754557828271987958958342142409911533882761286989941285853701281385885169468795224028180911945711795276858161393201491682151613970864387850422254506979296056127468117602960367952008505437010561049504850468875927041206890681393059841619838892354583268372414244977397363327554305250016785856276640338300846319618208893872132387304435477623731519418849395786293412229336645854492560288840609924926560,"Beta":213758724258113430587300239375765875956150774792096370623768552073219166434415898049008983237456158246691701253149821252901679120750611161643859605294384924617276641086693179173360601241232277346377159133788463466861133860298262491327077160872999488538657610007146106749274402454646846609334357669015152422129125679414061724554085866727823044277425831742891162019067536270251765887696263369693188014821742696220119813495432501404041965621224801957717262003637993194207132268230875181246965343044578212374721267639878520008485750276782452824321568644297245839660628437795902643071549499285523328658194098609756867251,"P":88081646641529665507273547243017384197410890121994817563429185762123708014685096063175630716484581957404591914071282207755726851742891373666926865496425437005171452685397811318352540089453959928369498492499298909424673583043428849994278631386845184001542491526482042860659502780672409276965945102930379736733,"Q":72867650622054582559320982224864873498303856390840003936080663086240388836473979685393705493347490406743779809077125800580452339652458373453407196657156144776119356303968376896662530622723911556256463787815161839602213866438056090442125836706122799161726702093210767923379893230379028861129954259057328860233,"Xi":17061564512938100789423169251557695332295154798378275138106520071484680978865,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719090,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401, + "LambdaN": 10271586066370437271725377114743947051102561021978488658226656766690714606285339219453318659973001764760027497970033050493466864012294337595726054732765722411386882966620693730535068959622514377787990660072402926249244760476782739398914065141681863323133287971114432870984617102048891906357022849948157467647356406395094805557742885641113639067988892114840885451129062265825516897313981909292306758658142273501066846695208541990201016924392663581890723381755065422103040700311275784852941191027026858611478910381064718846973186985500719976495990064816477162813015135194515118615227870698046901360812408562761553229386, + "PhiN": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294712812790189611115485771282227278135977784229681770902258124531651033794627963818584613517316284547002133693390417083980402033848785327163781446763510130844206081400622551569705882382054053717222957820762129437693946373971001439952991980129632954325626030270389030237230455741396093802721624817125523106458772, + "P": 150011624422030556473925686611115433785438417287200294839817289418304420977866896640099062742553926543995388062196242250283095813407094110061476824745342126340956323071511973207799168009259089966362509196169507101404878471696108760390593116081196020289204972912521560121660034115669812050639541527235232332047, + "Q": 136943868262811271310578855419780533576981234059557891325731202349340717172596686389682245990856528824389221968274967299974704042664411954108885571081901518402927587566370844609396108465311787083444501788446291316696835355507171221840716916272356022545434615514406370495583239811341029133312819708154868548583 + }, + "NTildei": 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + "H1i": 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + "H2i": 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + "Alpha": 20783840283535573698291503389518005050163776617154709190217898605050642014135517566538311995479665674389178759593545073911962138964240951118262684626727742670770131323368775175927759546689363637975140858370655234388131238048094691356953642253154048860002355458748499174904883278703907412814947967667507358768174746453492965875264938447869506916303919329369003516970513311634856804069032792057910844337685429969228560292197666847735721344819629398092073092849796710992475746864300712111149234011046495914646257450506463600377236410875670120566863773920898121096485214334991656832787199091377698811790632873030415312232, + "Beta": 2419455624610852142499594222078474338690845601116450235339936109759579552292480104678272222442397002662862877348178336039527065657929698709682038445454766077946227004562918685482065602846635182392809231389826033027242665251821402073093685082558907856626522974610863855727365583558110311741950896063076750122318461657545113719036634187629608148655458461203873368167939507679403943244632082650539306656207719160633443556563977068027577255122170973017796651060755149834169368046500776522870049783380776869410484536928371991013182648862982687617381144290723882747765848766920487146065607523034282723711211434882132948893, + "P": 73187435189368830941953555529244843135866979851383866443887726377445109304641772177499651891772481645174816364744104938451451551189650397669484714867861251976848287355738753418610718179638181790604800301814251181645703800520077186471062562933646875662035169313319401914375043756128098077318050412081120416199, + "Q": 79268964874792987913490425022472188108469567053019988675405419995478794668561168184383551893908783070187783699183559196992768346107488578287450972805721981553410958484523035989805573723869573748850905514303937057550085697247581799932131348346587688571426958154547408406258437829257713887447904036084784147449, + "Xi": 19687808486475123850655441993547402391583968621302567073855668480775039308510, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823762, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_17.json b/test/_ecdsa_fixtures/keygen_data_17.json index ba5d1c33..7fe0e5e1 100644 --- a/test/_ecdsa_fixtures/keygen_data_17.json +++ b/test/_ecdsa_fixtures/keygen_data_17.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761,"LambdaN":15145192765861853331597077861701241172582000664017010643955080741244031714946175792458138695554947147223400916510037343944681326069213045730112150901974044845057843352841213096879625591055273773389627137209890541925584974637543916093769084407874753961444635193312547293844179408821026857706100229019370654679878349820290933110361855350608276526124596370838251880351927731306924732866862588333307861088277231120891078817881039010971305939264790150183265366692417445051589264902223453487096384802620587977255001176542077853212695915053684789569312211242510073220493754223378348737864980457018411051106172326775534325426,"PhiN":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309359756699640581866220723710701216553052249192741676503760703855462613849465733725176666615722176554462241782157635762078021942611878529580300366530733384834890103178529804446906974192769605241175954510002353084155706425391830107369579138624422485020146440987508446756697475729960914036822102212344653551068650852},"NTildei":27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,"H1i":14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,"H2i":12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,"Alpha":8597386238940188057388170802507419845742256940460403244206110298391557557588315931604524201094756268802523119003598855229262681357926640853773268534129416120642324436454247405984816562974026247960510453871657027751279470562164293927977157675979137396427805006897360543153428540363917907902712813552387106305648530097484737905683266460904528988959568529769154321201207844846214208869772622550302971018172809103144738069350667751451934798553912933200139655754200044440835253643507470297845377705765313505536932381622466043608134116685410245673526099377975134772900963862625066084794372663888690648189084183335317206997,"Beta":2372900827440562300088717940529337038535894574305728265502187194512938642786845227163670408284170414606957596167749891568868679374644865763773083462867510108361526676307032045219595950598482829128747379265327484626156322423714305595801588227374718701382407808955361661145916468687694843771374596347137939112137226064254094345184527465242631630857847437805528358353373693348039280559743740294758411567965900018830934413286157836346242133729838775063310274661205302192960501542969122124445984036446986171668913086861148246493536182462724393062222158825801924288905860122957562188839139636599744959108476732447169771558,"P":88154769546285876769842405156738193840385190981742311060853282808131249873020586583239327227413562268487908961397495668871787945326544074731070567167998111074502898664577463482624250005653736162140645197003478260267854213808058478799901064184787129486192007748662135329532160830701255809209756500611722555571,"Q":76746928359805630797034117376065293217324346339297616412696275985513168039468913071239349334453939851037770587545865615341779367181949178994535049948656518923123036090706244771434708405526330116847159542342070833647638697628305890940571317894174529795165098914049863682132728454697188201847350644515367322933,"Xi":67239578809990443096928340986103661629396163806652730984840847978375421238200,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719091,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317, + "LambdaN": 15104836735285611461634361337547036531640914049538064385236512208935195388537187135952960778434011113770757307696325643957237420819814150111702653580900971680063392646904402758213623672455901367435403515006488031233297518277547537695416396185368111488079946828766386454686957287271479813545954445461531643191522851423773197012285237374346117874669928465460473350792229513466662700922540077230168157021459653715224531779563582909445653786136151530431541842982604399704879845526501356759355300881993112635197021011926796286388792845989567045904302651631044726838391550200686456357680313779590930375329126559123346164998, + "PhiN": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383045702847546394024570474748692235749339856930920946701584459026933325401845080154460336314042919307430449063559127165818891307572272303060863083685965208799409759691053002713518710601763986225270394042023853592572777585691979134091808605303262089453676783100401372912715360627559181860750658253118246692329996, + "P": 179734247837779647151576586204828344451917901692492772613860066396341781781993657419662179267954120799669649014202908480482306365445803974354583255461341456957765642329865606715761624409381693214374709178213610336224312814862544706373868289306145604074818945766385662896993529308471398207356690508321590870063, + "Q": 168079672260554185889064324312662546220820533213622825995213310874366375692142573529256222421491656535100509856196598207071830435950605243011211731169380408301519896333510870686411783315757159048513809863728470093200283073494625616340305453286392453812244244501670019615296475655515616145900730231202636417259 + }, + "NTildei": 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + "H1i": 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + "H2i": 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + "Alpha": 7122091636472569113597014331742060397581154763138797230648793107658449469377335768282079773828205740201114900190941243477959359946803513936374624462213831860150457840441053834108071108468265343192572700711160213389370319407333746970785328258022761648331307393263431984512106387952236190377952686481153431260974831287329282436911627603261500447258994877576414647324962083961442025328499385034334197046616124020497112741468261404079431876420155230037260226816539611472133199759700401083666676441262466375908373534017041941497292558326836744482958303585635531651412497248362007744289013026535554741137605081331950332187, + "Beta": 4249610197822107702982157697854822924345509901168095579921048200343804180251730160316574371971107022303501717930561045030876864163983385275525437059733602527858386887245346637604317079817598745607289630842189092890774899602213500057221356523065092074801902557562523658129755453739902809651676955391185415411824631570325214616144591493619422760408816541685123270203020128898391015003156779402154396429675576761266741589612146913997731698646713423038779447721369333187791266877324518011254497233814843049245319934265885328423085141380995674818446795856508792712843108509385783149852768615899178488157306663059842194544, + "P": 88932321278914023661384775648920661642713531067726306054457961762018204109783429678071822340587070159380972392249157578976033594552849026891795292117086891444838028167835874327639484056033783821783257312454638153068319913624632146776227339568748513418069948638737881540942027836133986937137531974150175567011, + "Q": 89171444621238377949914603115527895748028497386795498638412184988204971194580839893527592892162449727375464449277622811980888020566654549911306740541193145844584911502436072318129833793095520537455996855843070885795934627015760604712622844328263274668750487984516378562384389140759311336821743134172663379271, + "Xi": 52059195354625909779974595615245517209287218581772824814773649151635609845170, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823763, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_18.json b/test/_ecdsa_fixtures/keygen_data_18.json index b32dcd5c..c01e628f 100644 --- a/test/_ecdsa_fixtures/keygen_data_18.json +++ b/test/_ecdsa_fixtures/keygen_data_18.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689,"LambdaN":10945881420219298030208017465022421223468879186808854117644281214751157695822823522469689107517838732787091842978761410657727014988785864375302994164940923784656901274559045989263157566863185316642607211573969132209157431608902829938280592362859367795651668951474233791483099661902057494115981653541758590328372561362152685521767302904317907616236945181605915033352505786234153338852614746443923963531878099335783755300345859575733544795562889515367597141671427383903058884230205160853964018777194675886923970694842743642202953334428976686306368783665524035023797170820634457915032917016537520637995417310013202752378,"PhiN":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180656745122724305371043534605808635815232473890363211830066705011572468306677705229492887847927063756198671567510600691719151467089591125779030735194283342854767806117768460410321707928037554389351773847941389685487284405906668857953372612737567331048070047594341641268915830065834033075041275990834620026405504756},"NTildei":26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,"H1i":6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,"H2i":4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,"Alpha":4444019369404276421238041254632474553085238662928259086789078542992298567545781498051703294838970466449267650380574275913665718919756928336605485269857423068493659299437161194399763568650812553373010300233657188225569533698124377866160602316037919780440062132689862703725950872830925417061455578545111645625207207337417670925707543829688344589638732079810868013756303487783302299670241572257565007886618770126185738890684585077010491543310790345040705143023181452920207962285595852646091065193586490313162094856085519457980851806210967575810672197763135778267454419280774976321957529484908484216702382125298782440301,"Beta":5658253787786953134283325468784183961301963265857726971821062750069771534639440297114244967514197810389971330966768871947778622815352552642030313191468621023113723877157609486362984459693990471806440595068919485722355164724416717318214465402043037816472451277128244554611899855222525824075860199210334115974550715867089255354565931895942017689425962198535216326360377031214413073867230634760172798213570673763490327134822393681432615928857053367331003947402583239354074969865017219673497430632314252175974413189200147860495945751324951452356547627380952821931363130201997270279108205118571681709622024987430385684672,"P":89194222291410539565067212225809625562504476211560640508139359193159376230186216534720025900524282907197886020001409078626448639742549409882830100227506288246425438115838596520950348577499839733982171915242765034102237408093957155583970801162356152333928634741213265719731355103285731507231411533686494239903,"Q":73158878296307602040471228303881561292899977962989573705225889651829805826268179466601243365603012850767523233312562487054074214107500964468941569777026781026720238125159059972854000697236243198601253617329909585069757470073947555088319522286201661874937577823616672040844412855855762762034485193994108906649,"Xi":109680149625859489173071759471383900488345899774799234651830191016079849871052,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719092,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477, + "LambdaN": 11960101940433658514312734579411836203061111288513661814184471079854661870090743775980151441604848245806634287850388321958175363496070422452501302812621419983046956562091770402142418650043872720789813785445465637116583908793085990769201141981903674925835529614697358633082254647125980147065095297728352849426255131820516643665947514347250300109424144259949454213644301602506559045784174265123340809035578567974880109487187126610031306745683215130512517477395186960108337947044628136961121254999436830135374117835295989233358944515413860018731597426204738557642153410360820417515267278829452423702627344890881783250798, + "PhiN": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852510263641033287331895028694500600218848288519898908427288603205013118091568348530246681618071157135949760218974374253220062613491366430261025034954790373920216675894089256273922242509998873660270748235670591978466717889030827720037463194852409477115284306820721640835030534557658904847405254689781763566501596, + "P": 172143097441340375982964097094139140105824040208225528806306402548748948582397627874409667749740109165060051811839703141164649865656164998167604469717770450415719763100619641544799335571396544721974179384743560563878286037409796755506949012050695093543231038460487535104382008036129404330231077234879784420443, + "Q": 138955347245441458686426451942428321648432995860700023510140538952435717179411219753573367191271134448761240918428608850534417426752435803976228608245984610377152093194497344530899514451986597349016012168998149914937899201780394533115897421841116334657177000130019022125864833371826971586880920416443426494439 + }, + "NTildei": 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + "H1i": 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + "H2i": 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + "Alpha": 2137785805261969521080863830240263138026311479569778308769917553108608869471656964186104479754823109865575325352074819565461427427162968086734695799175343517984887187670324167703992567888569244426534266079117751424723869846888379125550490730106331309243875035896994756426297789290665374093138543997552682562413833014334552348785235446964193709451900276357173329343356549882383230429870259899498294725581491906072206092054529537247982002696228306365613685067661957009842025565607900180464791164894322395811692271033201040731519350916367822418451659631917551727447478905816231435645782900401369349246592675241777561191, + "Beta": 3649054014478949635887825370244056951020240666482543604514645089211029017180321196725272940317196988986404501322973076011735488346928020640283190213767461909772356361521389352409689197142749667066630640300357401907142265387043781765401922660420499760792528853060113968459277338846502650385811179806534225100324117526671840405165312540315754483318632754254559943914326590712721820061783764434138284972703819756256545776288341099909135799487333278079331247659890001104557788891804165961444451838260348773787101706100193238100158279400490295182536932855555286303637029962019923390653014815324808589442152487127729847385, + "P": 70741886779831681798301296173390239770249188509333731184832559481324914416423531896205775649962039039183878512056673407306354399539875133703270240072238245972331679369383355204882724555094144641945711503204828560887188061370306763254165357772916101402598732058849642197244603624509347182748772549591890735731, + "Q": 86730553252747925644032729607190891575330794310418705214735929575127290411017284698273066715643993904933867172319421440856469699132729915328721195996324802524240076277934226242391629617402634351204436434265472178370600613236507927403325375703891228624954776429036087552444085034034711877785745258969830210619, + "Xi": 66917848722464180857045954391608827253767745318889839815155978795924230812801, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823764, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_19.json b/test/_ecdsa_fixtures/keygen_data_19.json index 9b88b542..9253892a 100644 --- a/test/_ecdsa_fixtures/keygen_data_19.json +++ b/test/_ecdsa_fixtures/keygen_data_19.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481,"LambdaN":12680467167708357397499656995528948764461859116183326669853247088412819453347344945873272943457982098291331229344267641661143544198926932854546856199242876958081531888650692995953860390679316132663435258173344746064221141887300051894912804785147461740101379523428557568963857490423658480304888486168514394581432871029883243824735053370396662544346871089541175527507206836289408264417977841664519289897496092387186852283662600673751384327281203124195873086806739914491843440053996852064006435815657612058155053057664862115464638620710114694187780447494149294549071582862509142930474884616484380287227610352866300035626,"PhiN":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789162865742059766487649470106740793325088693742179082351055014413672578816528835955683329038579794992184774373704567325201347502768654562406248391746173613479828983686880107993704128012871631315224116310106115329724230929277241420229388375560894988298589098143165725018285860949769232968760574455220705732600071252},"NTildei":22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693,"H1i":14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350,"H2i":5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606,"Alpha":16380244965896008801919408645936993550924957700721479161673630281850361062503261680599689707823676777310077481906382879606119604165047930373013280115012493752844970579878517066443230309042042441572875966190351578677880444163051314226325635339575873633557739362846928410342828296897755012941497353554734471719499538529755855913754690487421231886060384680021711276147823122089629967058794841918329868513135059249177398876169190137660936525931868726446930727579693236881785320959200907132001805960652371305197116002022574810436630089855452678943496431222390051700491644213773826180538455211527397162384759501040652373520,"Beta":5409579759921405496172851100695764176115240640942343102082680030422623318242231542603797699900375975623051590552296981744220537972849971610413837294126572702069481792906841293756866931654296911855979763846655401892922304903925323594082253834083894084982069615207172506207598042594682752787900534890303259733200145578418152237259219628361487642223954511392398278461000889097500877720476887760547323947438306561036244840349379398021445297623344466586628982630703971743416680901079572948478711850482102325675696204661959115646550951222005961358095642498470440397454176534637474359381203874990642759155756376039458281787,"P":71142622732823092771600232991887405608420439069488707234322802311395775960369720791090798551056037392644423655209711227449759711339590752246402642043161303328834147730525092601565362018860913373554097711171347910977871993801024409572687764722273417089937930301881129106343959481581469499716794042933844538383,"Q":78847255568597063210353773482737495188025890214257169939115963003125176821588317019734659735792865548486459315958687046377971655293341833596822386807038200913408069815845894019290816469279074780543511918691259124375994723766610947141935133106757808745250975676835609615344299234348125165237192022527421628189,"Xi":101234860413981333785777616997801195521027200114102541777592727366717615158215,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719093,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481, + "LambdaN": 12199939260307929899180871284567772426428628703826323240709862580496169828673257881374229061657654578034999296113290409893016998132217853008082866488957290006290015570037987112047955551973860964959034860114512979686445874475465024456764748555814739374676215422429662643621897495817255737964490942110602691767574119753356502771020252378972828234985255892555472532572969543997949991463014474503650425681034296018612802802296258840752101206297937194925050198715061670579708278699392642452601925293095559222749233365987933766126097723090833770770632471501172071838301177752773324047047364176116438982650190017987451104866, + "PhiN": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535148239506713005542040504757945656469970511785110945065145939087995899982926028949007300851362068592037225605604592517681504202412595874389850100397430123341159416557398785284905203850586191118445498466731975867532252195446181667541541264943002344143676602355505546648094094728352232877965300380035974902209732, + "P": 179463655877339414402570685173525468729507741515698171173866996577080236594979569791618029915229613864523199871748007451395258699646530880514429016731933807006461113616852938742461419680561075980787617727949473477021379689215002743574780148010199266503607275848960202227853318236135719576490935517452999687887, + "Q": 135959999261871679052659999969548410900381694679498492599111793650853058320602844830175281603479391057356229753837250892884537488650190161276055906492426210537123327616756510398299374746329408495487443520407282479543946876472415159732298817046562442830051817971009858778363523555434208005521025466209316182863 + }, + "NTildei": 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261, + "H1i": 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611, + "H2i": 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245, + "Alpha": 13141963948423207748620169472732018090806613449190971026374744883466614203228177384715606202260681004765257697803109583877474314586001806432358361281022780440134182198395844832501985672137438196896929481372762298904764202726250741382010667977139719108802476583077377508105237739588427975942683839354319131129811334325780590894188120941526918583326785225987431311907575672984160424202200674795076754945322041047757982042130320240480776345183679957410907352968971761395258600533815297720672458167533385012851843497426080569558030186746572445628187053355111095752496765338408985078962331859803848230391439619727895201347, + "Beta": 5205862007939260519583011312440043367846228677763348788639835093034509360962562698158219119023302190173509496854946229071686754245495201424361935510369979202368967881426510836996257080903572004178584714268729790599864366901972552163916314652650097828605714569026347712692961952748186952993478054800001023794971810257922030411425790160803983720074553508667271166728339020715710294364494692780455046040374572926911428286224512411003705626548793357539507697834012658235211044927038669762025111861952436681126034153717792713158171887068469282519145268526006927638169373025653832158551337820373026541821651057667926057531, + "P": 85974176996041459058062789522134099603291939482171809890184786218991185289967225117231985286551773957176810217489547521735750940894698051004372370654498447261487943204233198110493147789969306434351268942265833775257235225790204199425590908287802651282760686866533788511178263436228606707363504844498843388009, + "Q": 70720889776646264252437140054703973165063676936978521255947975537693570661483087519283346911322165212616411533570750666701422144524618367870047994957950267081545362891879154729821288410485432765099389121506218653689578437534746155100286699324825951598156736331167799726577703210684114702114981592945514480059, + "Xi": 85887044664797207661750386228819779878410857922662804104241227669513422581457, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823765, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_2.json b/test/_ecdsa_fixtures/keygen_data_2.json index 55cb6e90..d5c4fbf3 100644 --- a/test/_ecdsa_fixtures/keygen_data_2.json +++ b/test/_ecdsa_fixtures/keygen_data_2.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569,"LambdaN":11902062570026038844928064149176278541839326237222692682614055226863340618930399989922805778085447093988327139291288182044516698109337113273434404825676524978337961297770844771288397339031247669711102492382709694634162641841256000497610875206052103697220719333025847237975024887047448145053215318108447372167737702441251565075594802542407391503289364676930046848592889764444473208311524176750345361303715776188892120559308145482690640380386008098215824607516345906020591797099324696931930539129840295608183302807198936106271490859318518243627618367482381944500401418308985572354562059638591289588383179774841227539522,"PhiN":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335475404882503130151189605084814783006578729353860093697185779528888946416623048353500690722607431552377784241118616290965381280760772016196431649215032691812041183594198649393863861078259680591216366605614397872212542981718637036487255236734964763889000802836617971144709124119277182579176766359549682455079044},"NTildei":23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,"H1i":14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,"H2i":2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,"Alpha":99930612749194478118600296908042506926692739692582613847838885872895917361241984244333640602599304371167273758960563944657238964168847145890094008171141820109486094906362559078696139635411309492242182207416966460371128892064206746882387386758007030887894419440391740224416422066158827171353996674486071321206545809261340407889645960240945172487811751333275882478086448570781023042237458085693984643299076063991520418457060933571240987187072863856077205628245912721319981126278018820722990414471130623469536651100186034442507467323080021000888531326106364386993840733872502601891369558638525326664561154017828847672,"Beta":1472506745866574115259626864190224692004809117918934787166846528825105924609688841466108295556523488652122781674292297444292995560548157322502731129456683958121540244723666433763823118509403125487290004612301144261032505590317683722074031806725573843523098435377672727847103988767892621104751882955851738010346666992587376833949626244593568297587354693893573786831021202044714442955117877945963339672065587195524871759098746680962314094004915895821503042815585664974984481266334250938197696203435802781999374052416565642364570792202973860776695581419631252848636379297475201116274866616952484297948956399638888073235,"P":83104757259097189186950079721727937164047733672638603586459353944286466420114424207639146426104476267980570400699074675491296408383804082762803049161909665127121238239604267151066446049707844668847402565424593554013870425931673959230798027449894404276925930305256920765401340481960562820469278891866471990029,"Q":71642128110699780750818062148317314680771514115102777629050114614166804537355399484072749627185009816049031339010525295431775519909278950430775769096405423548701628777704430192232627139339020595673609882501846596139297041913744680629890377085537497999944390724942020172896518996334279151212334736977022165629,"Xi":57247727253443308067353212155912907169143973469345000079270234591786686254614,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719076,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321, + "LambdaN": 11678627465133579858659765278879796492926540056176395297621857035958171984619066708628914564894655118080616752285983946455917120876456167997171897466499678991098611658964664303893166948125566189367581980240686232183857722870967524192706415592903909395168385822334210682482974965975360918911567901932650815529537030546979941196543136544618429862455039532938898181684114997338610639436418459628989504257122235823437623338615415001033950751972773280628709342241131667829917187797143670886211556896875270442672503526647650374189653375656891592615164229349032351677182015708584469263713904809924742874398330488537281918906, + "PhiN": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059074061093959882393086273089236859724910079065877796363368229994677221278872836919257979008514244471646875246677230830002067901503945546561257418684482263335659834375594287341772423113793750540885345007053295300748379306751313783185230328458698064703354364031417168938527427809619849485748796660977074563837812, + "P": 171108560411106966740159587972212817949821146896473247018285762084885743545836529416720098092771210258718913635529683092881922320381867484657330555633254211891650981554645789386862291989724935419530073847084558627817006521409238020982167490444742578169979944017118661642133401574390509315633740684413314253807, + "Q": 136505472748697136321941672152053382856715733279141729049424238926999467564688659634348103888403200796416607208472532238221520437104803943752953993781183390207865300706893941714626085192215837533600050356276515136164835830621905479660380885561279639437930543387881751310612145174160588140962891726273304311703 + }, + "NTildei": 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + "H1i": 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + "H2i": 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + "Alpha": 23468209328694009585155952272221340023995785118892060682566238438599308944868184912159929599771392250347228113721572062118409892036282210397904498382111549264090065254092348900894600195663847172442494518815904494556705647098298541423310629029095565696559067614006995580006421793374635266458867392874123404127554654832288882739351687182854007432760543996520073856331581033467348806236388233492398507861572619202826691265593849334837848566384000074460167819398534928140272891692555989525939368986751969834700894622895022481087307818137541123624108147046685063000515282905657846621837427787676791766405649393159566559593, + "Beta": 5363635081467873162064043227523535570206684016852830485129062339273929287988284629426514979725313641878920771829219087224532126455279228065521372796191644933554049978926309768822884963553210990712082779272007566558023418810957833750292246314187425333242188758590546687698349534344536161557966858447144017883299715633989278193595814304133939220102860522772662697179469629664076704650580454803931764618193753305719217344459946283613928503112870845846574014830295595024124225760555987912565957729674405732576231733751015377311962582606584811122918561694780062459420948623596824230034681917090359450531137894796829213345, + "P": 79376840563875094020699166601914843824438909888678113013973865254319415099802404431707944576877652477793599811805542748980069676615350518949558353581671743854686018412523889350247259397798322574340519481740461560714215307932674077222852125752627069022339532535310937150551203768460853854317294820082096988319, + "Q": 76154814593070794174301857434758165063011469376954366866576419762376393233059485634267296862668074321152369349037271339832267347238011179361730299336781620981835670325103145354564415751127453839923595265287535393568357127796340004353278243354027817876846162296723667214281090592379842456203474015865962454381, + "Xi": 10419987184031429241207604868190115161627206656902331668805889640860612069994, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823748, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_3.json b/test/_ecdsa_fixtures/keygen_data_3.json index cd8fe554..1addb80b 100644 --- a/test/_ecdsa_fixtures/keygen_data_3.json +++ b/test/_ecdsa_fixtures/keygen_data_3.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349,"LambdaN":13866365722621035815830978828856350205683545145897620685885982716070085990943607919945371867781258122669079383720451062322653113763377917295105120105646460192896535034578096042984479533579063882755825712769568008499872962214030698896510972560995218769445199328416309208857712752294542045047619557401730393599351526895838129021995828306264113931285665639810550996751849336536369220230334644988197182132217392077082888430078638910587745037069537664633968914245639632251817165736099949016578370074940133473856068360289160760758835353903162485416803625719298598240338989797716643027176992878755094238898258658201806127982,"PhiN":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787198703053791676258043991656612528227862571331279621101993503698673072738440460669289976394364264434784154165776860157277821175490074139075329267937828491279264503634331472199898033156740149880266947712136720578321521517670707806324970833607251438597196480677979595433286054353985757510188477796517316403612255964},"NTildei":24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,"H1i":21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,"H2i":22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,"Alpha":18526143758755369654106004944117140756173404582491413553141906338793937130524429529927169152026444966863960884197222097674004658763716535759273611605298510839738335359649171259646561748939901963163965571336517233109522826419453692460046507823385679524530100549577353456703682809978350127899180153885180143821809197146059616865930644937024137034322332233524948244416174785799809449392860246631338364691758740681112478508455990027323505216075815869169341414099572577475668799641080744140493732262714576392617224767131812852417840964212974189205932920542989859289007273281887501506896551155940933379052070595308620177616,"Beta":4731470290802421560212636103952042539433663549200665236082307313214601244574209799275630018152365209115556197950372624999358026995427562538488519042769102607395628687988097069439128970424052948450621007354538223241224392414975894880034831439683172722692711214925905463896801591681069567282484512214752510071804587514420309333473070421553803904079730643871540565603236719312785744337374009915441330459737757330855026189792632353457931492753910769714143223873036315514405040244554597356157884354816211986413844944488365802645987131340954377249627968022763963213210588212237590211244723310568706439857628751183618122215,"P":69803197718612198264157207254293499773421466364819033956674416388981053103828413035941080975905948484473512919447989015121472545666110666930410253727012477148248334857519354362893776057831930558490745820250709195184343181665912214670119883938386822416925928664899583761362499811671582064808163573575599312533,"Q":87859022977498083668476810321491256567921418564280059746410083524518486948291455613021059571374256246821564668912657244037103710010080289353592799140931056809183616803501060129264708679331459239770837629213603567399461719778338594208464467502528060541257502283111358345097270772235294547132430720419737581213,"Xi":10024048826107425726828580752086990883370190085488838266547983045060632911185,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719077,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981, + "LambdaN": 12926593580054158776555136734008212894619623526168162791126801083825288103917327155701295537132714765911763964790935371531033606022983697856379774589992184401586228974006664272419746972476597562965673891419826030969510084405900320908179792758967311838583825327404038140201947401109455749095022777436439029949375462515421525619378837746445455097158816262239645650879334127402142976547064607409050706614523806962402106472823289650014308183620003451579964407012184407173021797179163636872200340118850478792637900186134162105095931497732249533252636683566717856850489814795280658489947200084712556083653675404388308579382, + "PhiN": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059898750925030843051238757675492890910194317632524479291301758668254804285953094129214818101413229047613924804212945646579300028616367240006903159928814024368814346043594358327273744400680237700957585275800372268324210191862995464499066505273367133435713700979629590561316979894400169425112167307350808776617158764, + "P": 171049579752054032601740721551932053037467239641965662523724539024634415731726353182647107571508871289232408308989711515426859300116243945363565141611323543612225951294964594052103883606596494994339068137780074188277011538841007982560937909876845448992538208201683660169437622530041351032687094927941113680479, + "Q": 151144406186697234579040556435848670952209938763805811365811453115762934479853515787916907742807805706124694189912818415791652750692364409007336832394951272960037809120397729764186145258741118664928953210393603799284465574999741525890999849205825542769866009850657738984706380213007566635708730323614710797739 + }, + "NTildei": 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + "H1i": 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + "H2i": 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + "Alpha": 2162237257786792507571912323434395369788377911974088022562558554070813726329952055856187379047477794995273467488865761495047982917560315486975512687365922015899582819997929572556057792721965732735400105916302383869117289613113673962207586058536294219308041569280549470267535694196859701770948192115051162613567683721899122139502298309768373134170439651559490400945672778083705315110691206988761283336547805172089318914857716675343125034837503399049390193581646763917667160906708176665001657958524520205773690611768600441892017186454516803121289283581608874755463044630317386395862277586588208457975741282077461925515, + "Beta": 1318287748435933489436917068572852874927361770145063349305160762078769590208495058283075856615736775025530441635777048468418152895946286533405814589662782045169040423378598498435080419318714504014117628662411734092027007871508925521828578838036555023626267039234439257641600753089002167299918493807026006318003805770231043139087318075665275120610136690109644869963517097053632481580020957551654942753283512426953703559152038521555769262278486507011959513463240924370349326013357022105712881487926040533007100234090629833929526081598825641535909389284257436034942822148564167475386551247154893158253110695656333491956, + "P": 75083036274244843844948270466991989821643435531390069438399534690409420521594886581351946393053939792158132062843572004185533110183055250580318785419802883262505588224340176105560526890244161141830217344930418137211165613028368406906461025358406374742771347648431934690837330627028077527811756697488245442121, + "Q": 77563297662690274995928071310836878388448355035181919188803650281958508629833146816654780749333623973760970689290273382785324198184801568338744344246407823326469918518392391597951485919654660719748323796351351879283117771377464104325179479257443917582374463176503231898797267618476001177676093911785637265349, + "Xi": 58186213088371671859629957699015962930560401782663318396788156735206796299566, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823749, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_4.json b/test/_ecdsa_fixtures/keygen_data_4.json index 7623f2d7..4ca39536 100644 --- a/test/_ecdsa_fixtures/keygen_data_4.json +++ b/test/_ecdsa_fixtures/keygen_data_4.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881,"LambdaN":12270039061247131416559958965045936069869564969808803343061142274578893432639146483043969154727400082540547237449528762376286003115421979998920760768137118307755793875019916007489666269962269957903930111483554615149369385185935531879917148097029953515630162298676856721142235565280402973061247647403711729041660487333510920011122937138574954295806136375271986473451560751967173002498099332960160067642190786329302505034220530875414114500474464171877940919124625268867456393511212477810352115245672146396225371617642682949920776731955871257621476098833431787059363859298141429611805737309058585348332633893848627404146,"PhiN":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083320974667021840022245874277149908591612272750543972946903121503934346004996198665920320135284381572658605010068441061750828229000948928343755881838249250537734912787022424955620704230491344292792450743235285365899841553463911742515242952197666863574118727718596282859223611474618117170696665267787697254808292},"NTildei":25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,"H1i":9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,"H2i":5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,"Alpha":15553917961117102863676622551531289560084855047762272692775058375794858968435477244856972351727662993252233062887528702551625303595398297915454269909060216596711434630410422703967984787734216929321981570200061039937219279219996085921172218075303113989100809835448861759784494103341646597219980059277088391535338059233422474404758159670761258918472688870006689407334381420384686973366192496011702197932868892149768986292338141008346690447928487891667816269500457764222628941582894506747852728349890861925472678740764191912186515923847698106645094987931545558782795260631685707402904859949599042490295689971318053317524,"Beta":5300215401554114126340713245275511359803164738740883876962092164270783541870618854228616375513259971026220524758932637224535502726935203219593011063182934603663701536326003525641975622857624282645053399202732486652945295240746713707370134418750723684787473736704601627019331638153983397659862743745648199641046822283412470659884198102682459256467817751927203251042156003005266586077814974215056393213523271943996096523916603095060555782674372732166050709693780281920209441673083190499518917688048052108246904932524198763890040317740003492219035177668512651427529359848132736026690115507904938694301964837222102369669,"P":73926498690420544290875271400974501376764572835851916821314578294294117604000701207663263162107805421202145827238195413581847153072916010510148836497401433703056221673812106903182907893192399819036893037671576982478969807531180479833969262517208480805782533985411491434275158605087736249755012432398736902011,"Q":86186778737779334729328800923059591415471914838683569103398456405672125576738213950455470818136676348403842917237681735366578304411836934388255254290574135205246114731740521708583708001774452381738499221355721660610396997890135162543659592435359058426149085265061322506154734127269406330027862640769141752309,"Xi":111068086741162624685360206449663768121170745601702933105998113749732981474103,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719078,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977, + "LambdaN": 12212925481593188691122506652253477021696088974802647597903632670909090838183491079392591938337133296972614075698829598822736192729868139702466764327771511978681174436393959449964604491659934575197623934389065652150818935043335944763640937410800966920859275874571608998143252947966653591242597021642837896235837552492595498282494023847997518900465966328917926627921492796596086951115055926584206733437185639754649651200936382477273146862118953432034332558847456303962884453396620867262678126768574095531918865037241130996975180530327190311276655812194574481227744042276418905519424788047667068494977668249916099780698, + "PhiN": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471675104985190996564988047695995037800931932657835853255842985593192173902230111853168413466874371279509299302401872764954546293724237906864068665117694912607925768906793241734525356253537148191063837730074482261993950361060654380622553311624389148962455488084552837811038849576095334136989955336499832199561396, + "P": 137038252387342671370057272442263731762323339055891818283089371170646437917391379908964171557063906897267056889403966989855498465433726551011456013363585308591172585238392800319632765039807439824915461018360323804338837483752042629455390499209541443111374026264265287751875044453170324072023852792107749339239, + "Q": 178241115437943469831571070659207392726927264170368205537877789238497439577313862251023933258635473616233354580478816706875041213053922128756480525555536218127292821300895322971775769520954658517091725829114098769702648915302235686445188343879678467175326790995251529913360965379304436238654140575669939809343 + }, + "NTildei": 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + "H1i": 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + "H2i": 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + "Alpha": 7819466986478462234778193739908371888308212086554257860612279448226630795071461205246918649584225598225614792538404739969707798122356719562729612746332985514925762273529465269741854443488292124137846129268440949585976767104921853218833738387985061399353803261767435036863428204090407865060463030345619658438940601319179632850066084058875112112303451255595746636604776087105638038492470046303608306817550029318584498837492765392130182063360937008887535500581245482792241422346106712407056233891215053368245727500678207451759638888736337380278665340177579435627977957958469221409710863153555656599594042555019814194377, + "Beta": 478347742417071748581008603446185512410102093193252370907714653344248732393576573487221559386925239844297170657852685571190775274599352516567713443945248288091326483373714885476481781869650074446030528599916863294916060114929692837726385479607961626590842256835383844029002721207596000680652427756656480654618912205861055304525484345295039525503432061087237799959762519376217338076574684281467286725106369338683786013707555106319932019817451597678488584871910641346748919572786723030054075781609782984976996958579037441992548707539087469224937417704093807823578342678107316082942427718918444541087712721949009290961, + "P": 85624256142061016256487491272476554031484429055500329950499045190411716326794205799853968374708460630003426712739093727210094029092694067301259558333043705179548754240145369314436654520327628396887746570128072664663878962601794157370002126337960523463233019518297144322055375170600048801978645103066632009019, + "Q": 70550328206728130406961201861184784726242265635267784615139505665966304016750850346646860652546797813602029194995420717784285173410666553650514162339044760611605275119481943234409029679271086401301171615734104739174725051736620909754322819856433496037316930839191399125140608685392829831605431465339223253961, + "Xi": 96538143764432715093627454728081854071822032322465615254583024627993604591737, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823750, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_5.json b/test/_ecdsa_fixtures/keygen_data_5.json index f3ecdc4f..01257558 100644 --- a/test/_ecdsa_fixtures/keygen_data_5.json +++ b/test/_ecdsa_fixtures/keygen_data_5.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209,"LambdaN":11534203936948093660305204329018496380161560118538140769569900571764828246515045634195477463808059866152605288239811339762373940123040128851469549564497359763947219861414263058680824118456911513757272431023356199125867033263848838118674362232579446799780236600175765112122520798170110481841714940670276604204697151869382735570552820579835395283964102199032476503538765073172015650060629749226002955153120263250843933907764124879552530874840806371473709116497502303777591340217043096272459474944971840602950076359133854200513187196627663793233167258557701869825818767213561097870555894995154444443750540962718804648658,"PhiN":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409394303738765471141105641159670790567928204398064953007077530146344031300121259498452005910306240526501687867815528249759105061749681612742947418232995004607555182680434086192544918949889943681205900152718267708401026374393255327586466334517115403739651637534427122195741111789990308888887501081925437609297316},"NTildei":28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,"H1i":15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,"H2i":18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,"Alpha":25321451791082117370957642753428856679273874534391129334456552657790295241220745840844990937621926874374144142399115218701302877482344401197350151339193346802206012492734158852969546457794797815690901365737231691320716749796151363753204970683351425087113164759724166095438777488668770250410465329038843160638758751846043614971775437777068585779120226210564509530015508789096887302190791107994499351486000271426865537623359808912420068591261832767559990362012725669800619015068064232762908635067579903001785352859085438200459881379147015423245296739225790159862254500604675356985341607527988333646735369486778480858294,"Beta":1642279507758358695089756481689280580915033367783537896906092609807945832852189624568989080919415996296657949168369180170283170245713779437220742571258640858305258924679229197112236815087650130340758166251099280241141778755935610934735728543356902025357596436753245435712172104262255198347484438409785742744065160142806354086508758060542086736287956492314964404783960906562040039932769473768538792465878047761264243285788679405803521366137550309658962175150851787881798787404552541627187632851886050035718923798071947975663226157686199422073880068626836847425339284771390650031255115869768185498406964663286594453409,"P":80696636441110830688876604524502555339853149384871961757691474198762516488968559695300470111304915486607883882287644840179160328307474799700466382661197581343723044679184082580216854795238647915485871868952000276665798387321618278023898796399414000331917384866705080129861769976043917976091785630715867856763,"Q":89617118003122781963037583900598375324740864877539287365699704690540831880022519250798601638503816117401159854902729086535851853617756616603418711642684447394635907764133031184583735921967540926415486614318384825918631335057800382805526328354726200892860000097786702550711083538276656746009204636307268407639,"Xi":108556728850186019944014252751384901580084993386694428765647602630064702483126,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719079,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281, + "LambdaN": 13822926903761915425991806787022296876673637280298574187181015571701534278652007652631053199447180321248939929874699854963558196134246350895193943443151431422042122511202332317403742424787010441960583781352794461678477392359585612808175627667844838262978730694267730014763479608025033332318224479068401817691630317281956539284029896499413015043499477780468259592173756823084780979991370673887470206640361888539355027391418934529588287917092612554657813057572079119234216121015154613699565307416552433204524405360296961807773063506319461951518053594093567313716737725198813701797613710855866891889034943445900515509282, + "PhiN": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383260634563913078568059792998826030086998955560936519184347513646169561959982741347774940413280723777078710054782837869059176575834185225109315626115144158238468432242030309227399130614833104866409048810720593923615546127012638923903036107188187134627433475450397627403595227421711733783778069886891801031018564, + "P": 173146417737143947811620441732123846646663763946203427509837572502494853528075085025727224210954950990246596429663742729385959893315077659627780801747839602732838019481647166391905555650589327075298123059659623543961712343593874611308431976728239065149653869788596952732364167071798591825578312043713566813599, + "Q": 159667489335490594795561210604415192214287468389610273552985602736518514013833801609958506992976657891848951747994142979243442952133262147903389002710651727022246439866114102645945094731415050243980779298621646867141224398739616089541175593018638580984458619122811803059875903866467137366477423164448598893119 + }, + "NTildei": 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + "H1i": 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + "H2i": 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + "Alpha": 20094025275149855978464846573748312103454817735460122171576325595642794678592083947267609139367748009285596449340625118152245815130264701886979043513913887852946304912554850669326968426806342689162437408021247814103729648451442351384073134235104910383850669683208105501801119896898556924213562922175186426731084756561637286248991537765034205756842752995641576886156642652269364117079240220260473612361871879040912072434706979681170358761948884331833380710097320674161644729733548864196447192962217252447257043835793533569713765114286237393473455505462445281889316781908769589054909676311478851911874589642875149652910, + "Beta": 4282167785369240723427881993615724669105463175428067619086127570758025245658306195700954511048850340285115807455911111571759865057144562795677667851951343105061030518347507319629274098403680686829180143726462832655078426726943404287716610267849756911434730724073050292295297501324891598554331392390260628828127017287731689254343488410067637398365855630791325261764005809905774031387857844760021545547432307165292818585704424504693904336015409011792450214875252845664266067569721824199899786245266836397779528575338625635504068656609579555613282306539104650574569979738744470862995755345588223336620187067736787706335, + "P": 73386498461244138235280052170167147850012607016286398446618367730607745283747630597743682049272585234668854046630435041188641814847345012791518281034432385823270671593762235675748654370046064158753025070944663959607880154179044263205601542250751461250291487944848384808088675008930219118767023407487729383041, + "Q": 68629337313630742440709652105552418941728394831426857413471662517030977420461370051623404015423759335285917320838609839926091893822423377623472664958378225243427148357786542404811475864948147935458511290587700537022638091835462179468415162748632340780837661691045321790804937715133258908601987185916956419253, + "Xi": 3512751182062698005822869601551121346784434601092783145393818411003162116901, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823751, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_6.json b/test/_ecdsa_fixtures/keygen_data_6.json index a86d668c..22708e0c 100644 --- a/test/_ecdsa_fixtures/keygen_data_6.json +++ b/test/_ecdsa_fixtures/keygen_data_6.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537,"LambdaN":11680362442838099261761089660575097237133760013354258628882222331512559519819232328579362312251331779480351234994035338207830399212958138286145308718601418875429369446070059181963345260478093901048724610692641806101880103975300097833997488200246811784965045499510798056276578838742780649534995607603761383936593190818157982452076529742691118033799484007424558221472823057019845576524338529326547140758041331375784960911858045829892681057131776224775263048933735211845835188420860399804620296626962593900330492026087917324199650747884714573980661612198850328772513448352383690816471940619112747453199426196130352875258,"PhiN":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873186381636315964904153059485382236067598968014849116442945646114039691153048677058653094281516082662751569921823716091659785362114263552449550526097867470423691670376841720799609240593253925187800660984052175834648399301495769429147961323224397700657545026896704767381632943881238225494906398852392260705750516},"NTildei":23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,"H1i":12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,"H2i":1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,"Alpha":7446220909797273290857150847333764536679598070225924716910774299756208317947998879432542801905463849757911597767722495612156003593978336290179062849873029966472284981435931304013850941144395359311489975566464439085768729975092900767515753496103115717088967253387575315478981967678199167191948564011048159897032493110367397028621798306461472892757405835493359586405884130444881332776034465561429634462805629246766393198911334536417835805309780163982324869262816782545201261844871093610011507559900703810864342820765917368208956912152445847323706809990721868811205414041849831882112558026072012989084512689129465921411,"Beta":5346263327591718094088423449782021926787014175503689358308103800510758452128714312941624263580805297208738369474537064901031379866968997881824698656752612151059925677854451700764116674916628837175914050639286686545859877454230005575838929910300364930554855780041771784030325524185728953427361972558858648736080021261444724470252816953059537976643601153774828465746097209982613848224233140222746739440734520686767700866477822624635416589720777086875309397880063760092799247901346867640460150571760510924874016990922721385057795661265598182707005477895661092688530710287578537652002753598851257705749306156981234932718,"P":75311135858552947916191137633615424729334407230991272646269649846253228979784769804293944292509615590520550723117687722048649457741502890852449867332806062605168599709950666207396557953101675204451990866231913411620595409954257775188613666469726296017142248561251831500694230683147618791860203482937012290561,"Q":78126293761789954753594370895486775664316889137447723729988571263098955742550025066495248629116793418349030676288588005904108738841336508868139794180176711441039146447660644066140867425740329089811214518780980923643397502550444365364815765303689528201070645857701801005156537864534227573518685152201520557311,"Xi":70749897752759946297594631123139412350685110426681961365043902108247798533170,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719080,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041, + "LambdaN": 12760614807450566816141209489124729777016050735439113324157886385986870221405358825921398828720323388942200492383320950309551103414448564515383085143088743184950683582083010453066203341595208331035873726055086730172238443697844970438597962697182194010255596445823012324166360656020954552935257094940929715312216540981917058913907188702310387558918260101220423662196093781947881739056808791424827778903442089959221113639285045238033225212175576820799271188773986176434083945687247101126356577506151110996102549214021711054214696452011473196583990641293405698558836533924375222703327686931565182596388221844143070264546, + "PhiN": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624433081963834117827814377404620775117836520202440847324392187563895763478113617582849655557806884179918442227278570090476066450424351153641598542377547972352868167891374494202252713155012302221992205098428043422108429392904022946393167981282586811397117673067848750445406655373863130365192776443688286140529092, + "P": 176245130878730007505671684939748011647568877182763462087342913227988359929264911153161098555976835937689278210738251868491631712469073302741339600783701439220545527412314851880655181769488787521045717911851838859216151180356891339538024476185954013310550068663738576796688514116803748801482656737546033793147, + "Q": 144805303202740231529106258134653448790061563532899722692394227985890171566214833081116428642489350888934502475862454004928169998447532519045293216761779305584017741601898024568457644895809104663769426768464084779716351316466556366753598161672753203249316324543688188597597329109162328367429618618082061681803 + }, + "NTildei": 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + "H1i": 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + "H2i": 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + "Alpha": 17400350452723567990033172942291521277878094165740577700285544474373815943032701320357513285591800126168207535029093960261796028721827845491813071948119741609551629575106591115973412033238837435312886942056761454430692995293647860388290773332783214047961527881120857936292406347268414879805273319126697420217023818217636266040143058021204962437712683728161306915624089925757771286378501207363652293692092542752764636858020786748752350952558870484230355512645473110227414299838553928230480887652210566172422420123212968080265230916160868639209783006721292183427312339803798992820971553031023852330315539729244616775087, + "Beta": 1888065178064062755602172022272664908206769049353735247027193298194545286235637431492163990590951475490736019562245693123821718357641611400705002795190445826027547760873016222906002385319313003165411949830482694664445454212750930859591592879945835715987197706347621072470025306606069581665303725026536734630492797353851927412422352751512922203814942903753367519479407620585217411722304813297434173202308870967510699972616222973954905120932668297311095051186299497512608812893293577568841059584223848802329746059941561705887953769357145271600454453306464558898436070676687396221726222066949668485017059166626793847296, + "P": 70511962912721166999932887285289433779950311841279046812222897837644326680045570903143557583389066004010752052704159646618308935395114767580976792238948718940799454175806834872273464830459525188945395782718691860113686858084564430922522015122407654633708735573700934749007984335117599113127201186769899818573, + "Q": 73089845727521265954213178688558567738330964566750981104575019310258657576976255173256039708230615261327181475777505884143646661473990899210894524455876074404854812510869065915327583170315235599280991917230980840440929607619150648945306860790939138109448925738330795935322704172379818988655567530054701869339, + "Xi": 76808136947851412058428451738437245033554687091810228973826653419415265386443, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823752, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_7.json b/test/_ecdsa_fixtures/keygen_data_7.json index d958f9c8..0a587650 100644 --- a/test/_ecdsa_fixtures/keygen_data_7.json +++ b/test/_ecdsa_fixtures/keygen_data_7.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657,"LambdaN":12786238019074991921912379313871886646078771007834577772949369568216179613833792617809573206704406352637867562738614440862443557090329406114844739892541525541534714073035494365259337680640248938107900624679368182938003766307383173916881358312764690822764383751188079807372331849015147642060294506246379701491738143924473027740122249019043589630043396897878768824422067831857346441504927813877267780058237012953782829365205269828188416196427570620770341117847591638769623160642714517842460276874995138740189058422420613555196453469443907496157642226375611585351188282484097791699303549487636524244740519380040363272938,"PhiN":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983476287848946055480244498038087179260086793795757537648844135663714692883009855627754535560116474025907565658730410539656376832392855141241540682235695183277539246321285429035684920553749990277480378116844841227110392906938887814992315284452751223170702376564968195583398607098975273048489481038760080726545876},"NTildei":25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,"H1i":22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,"H2i":19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,"Alpha":19990755244023618635359232671314515302506079693185096651731569410973204874491827193856467717709419338172125286866696898627307522111042558109380148255898612903034654076713654186041453991604749559116203811769248672222165745208404899171692998844805734183173596540808564246825998236327814446843152451361513008383423371646765783505227931768158584378973679402282127223963434329164056129060406253233013156426181516654008495828203244179996906507910485672451928812246949419064281693541934053426107021924212860837108349659008449893699610033896736249708018638428568565627063149829549396362917442151208518848297126628839593040445,"Beta":3511535883172441184987926846321269810532810542368257939265286065824562708782941730720365326738878333102314401656473602575798301203654068014249094319075236083348324166791683577480859365553322390565875654903883931225455936020716829033812894086539685899573062839651057185199280182143760904335730479451871484812691303904049557078767317552508152119366348733398290067084953743785960049718457691475878053081612442454253047012031859225699130444972899303218263568363597220780521466879941809518181288336843036945476848983838619816125800706213034593140656093842894511672431898197326485005888673413720998370193083093916830940453,"P":88500673141758600301101053564792151983941891395335883013448958580541566116451410232232212135214603160279116820486177593815958316010526475303942994969289896668210083030943595771124098917651546791981517891133698656648477328939990365313345133565022211747343306215599034934549459961566228427201910921660228883063,"Q":73306740293646112965252355560544677852933474563387983272747043021021013323293011584916048433480330104808732540738619911216677249013082043705569103187060823181814149658181446121326050877106684589000215415738707343392293682933173632051890982334038049707320943355797575532900492439350146183937621658767991960641,"Xi":2911165431543908290076240550563675429370484787424635775683044819436537722410,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719081,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393, + "LambdaN": 12674437444843880707007483974760117710398386565739927023802325595215459823097436622309279659684543617592788102700000126184711045780661759005840360983555426326916750193435381188457276238363092226798759189589592746732801450582284503772136020156602872309121525614674233108668109209715816939399868642502512993542084232750988383696561647895020578183520426321364161913101712726463373043202553099886495774433828292027730133760390023040408262843432997055060510901230961145768629957306123950935915064749062619822079425893366383813151474208050777033843101786581597083514438406099231502094175831808316331607990446646400650079594, + "PhiN": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084168465501976767393123295790041156367040852642728323826203425452926746086405106199772991548867656584055460267520780046080816525686865994110121021802461922291537259914612247901871830129498125239644158851786732767626302948416101554067686203573163194167028876812198463004188351663616632663215980893292801300159188, + "P": 148423036547817516706959900324469905255851641912152854370976222295947315651575974257194573744007261100188568962824855858873323402465483323059790179427003515006497586946070446003671524739876114788847993252124349515389469026745427739133685057783941945533717879762132594630153633019222840710705558757073839804199, + "Q": 170788008918825097236106151213015412369732670701029468035329849181236602278998819391534244470554558111517157155689427285723437609260774852014092865376273083291777029564294619735708847670647199309900012590067991271846908017233219013610082303345715491618084686351324223285595630730695205832796208873184698633007 + }, + "NTildei": 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + "H1i": 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + "H2i": 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + "Alpha": 24062431865978569387362879565797733140814626162329377525446229003044339137139112134741282704586194799926256390372647636824519074854782821695040622021249407592098631809995174565435721231137814427968245504745053423923318954698837591107560661636394103991572974835596091201265331545319261537172319152683538473223322435398813439575182595191650197092854325558031644048567515667528849191432577478489995955815957649500482225743133637971461784180839259804221772087399584650482820043031323692119635286138605004713773954252623367807918020583380921283016093105480070589959032568189356858089825014189865308111455944135787857749199, + "Beta": 5694212343259026563323225346167580288430507775038159560455709598691450958773370181279607346163836320871475994111659639151845321377234758841632269540350794121826139765730046604471578931166483804343667222293078109741456803259799730664359587218458480863544413101758191148407534708850384122918781257871417027713225704264658973355080186625273515120967518568165244674910179966019116979107647611317710142567660750499375759987163364305820638471782249860179224218769409606410215370290713984323975269623762411574139543891566293818645357534448278441585485316887434803517765949051316654605204308273988814659319899795211830005661, + "P": 85474286826802528774554880098467841184840545443066888507727734172470125620153479025915746578724477284123315531744182613183755305194693779752680066876167415211442813178568337682911896247955459157398712887635967986788680285142356249219032655086064353307458382219221920041469448726402117651591969376560304312949, + "Q": 77159237292244379466950554392143860771993915907774261794348978899146083149941310856549439252828464758510225514913834628317827693768563639967800411762394305668083221212630492404194542284811783310307636242530723448797498851096926021142254420405578075398459095891257753985624753363667692244937506834238331446723, + "Xi": 97812156165675475199836590005814662001747486492845954284232388911569864989308, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823753, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_8.json b/test/_ecdsa_fixtures/keygen_data_8.json index 7a0ae4f1..1bc2862c 100644 --- a/test/_ecdsa_fixtures/keygen_data_8.json +++ b/test/_ecdsa_fixtures/keygen_data_8.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541,"LambdaN":11339745749838463282624529375634850957185082688162942745353089297118217793687226196836459933628945086073249616296081781739374822411774202103553604591879761525301798524770602228514473737499392565109822091101504044438772152999885939568981119652129185578615587236745898745557138991542405861882040041425877138496002923285573044134019257678380216629083610786555525642023686985067617167071631984666055727033937216003595524182134935922658674724596271159211427080317371979225430101192248732426131380961739735025604596604769061814219664559039810896021971225581431521596329081368850828952382805684407903258178735113010263626726,"PhiN":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992005846571146088268038515356760433258167221573111051284047373970135234334143263969332111454067874432007191048364269871845317349449192542318422854160634743958450860202384497464852262761923479470051209193209538123628439329118079621792043942451162863043192658162737701657904765611368815806516357470226020527253452},"NTildei":18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,"H1i":2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,"H2i":16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,"Alpha":700288022223251613957148754416847927713859956440949799042517070837395494977874763069678215606343857517978071047211800299615857408404521804040142178463411841676954406290632508416581821716752066978183292738056599988555316232392914124044505869215229024062582757658640317765338779668426077387169029692496049188658705496409837088735779080791945342008953315430165918567440162054403325897948950356690074037053525589329913737022229233862669049173334548878398737300298559494748940199431093764755404891947609040300345749138369777405176216842207649457668546254960882835824822351331398780110578384417463978439538210639100746913,"Beta":783329482850997623099772578182907149966545249837661819541503930773254250094291320313109140596434376167405012599707684581496032438592402563794155693551061613565335785944865357881259172456389617222676989409797857560266207821822873987513532339869586280767013527917374123772513950578289353228173675550010268424612514772461565456864728127361311789547881860386300048077575741810518071655034741107924089064700766805381411225433903419094693995680437826069415557205263562730272115025589887419181062414986240741107620797594089841150840131462862886795874560544399010664153676322458374635718075236495916651306514940504036065278,"P":68640913873492537606010844650423790995456997952325643501462871867447978353159672600481720803886728424366525568151339756638871841019614115933567125451993971197491204637554422366149546161902718104978806315511201974286960292451000602532012907963646898647849115963432234100455557429301666956759717263611823270361,"Q":68061878698854114890649965831646189067484987421843828643167844827917030467519007958578395513720534420811865873913294464047994413945575272600949688561468036841769089430425613243913085447550089847106771116749747999890379133168390146077630186323144780282816348863924522029190759428486390153997594974250009921773,"Xi":52562288542671895401551182194176758753438280033195126762279991176573522042313,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719082,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137, + "LambdaN": 12796090313326722104868643895677744722114339551886010134102792187690675642080331032389259910871616392014358205787897062771198146577199766306318014828233439886009864989339488280158737181313795336190017029531746071047695041663829988526782073004127542975476953499423083761908321795993296237087745179192453795259501203912026705258185119070909512257970918791598012108620608642857659946776525734334706266102276490492041620342653366451586810347687330610867548736741502538113426398099967050430512511680239533000418494285572046423301148228722489153150323711588436440745844027140371342113010339971021761076789989824559525929818, + "PhiN": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519002407824053410516370238141819024515941837583196024217241217285715319893553051468669412532204552980984083240685306732903173620695374661221735097473483005076226852796199934100861025023360479066000836988571144092846602296457444978306300647423176872881491688054280742684226020679942043522153579979649119051859636, + "P": 170279728627936899636280877811471529072867081632552609133919287487433245395884367992819855457779970809425783325015536501750932618561509184297643437995632793903253035714660319094752836258590821326747208102147865634753283678123770481298966448660363399807883311874817968354435782615791341973898839004517925191559, + "Q": 150294934299388293213275937506054905715210509502608212004202311674205153954016145048894356788163662621027508448440072638722775611325145086531209672999815240463620735495763204288607189115998237984170168257504859627231664317728379434037353992685065647511304663172930148492692016174890537673178601386127216214943 + }, + "NTildei": 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + "H1i": 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + "H2i": 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + "Alpha": 14940715374117906040473481378960898299613073117291422408190257839243703925679304295711390117414083360368471263003062983420022290408875516155714423705248294189080925573910294915695394218642043865503125113518072865785117797305247422708193021745644576304590565952236215653249920606179909277525853369213933254598860500277415436334109910587449953090801478006978754929427060506284337613359100059502485673810018104074000476568277813664889900799679802633318255512887114433947055098030017734306316357491566502260780572228134253604863590484681276803003956494619164927361974492611194157708287583905316994809137190893489648795644, + "Beta": 5772494466630357274782019969049459828898248939521617764606303384767539551045964824959155865288126566749797451993586041578192987659364262820067369482156331820897790202456846652013292416310827942978405345895774376106676741454133722807962581191738122079560581479776332270212439609978563897492282808391394921589163623447482434476194695311160581168476392563172022558515332883973329575004402908905812221272177026743563531724834613303012765281005568395747638253660265112564226775567636215691509542765880323557210911257706309149051409993152269128186317521878233490695243030444198002932869314737945586102121151592844421084482, + "P": 77673515983978283199188595314366230141948141760662264440013680174886993344938568013183107506471238692869685985666489426846310841004125632088029838076882461917328982515824850292439651072666954151294562080518125309832499155653845615090287264410488362219707489089623108985313196526743262179983839083946241967961, + "Q": 81572956636830705878733053716189585655971539591974546528311816415157880473902689946248669860199330358538408836631738330841492092134937841808951761627780638946991527346743190590812366618557913637504687926253800492908955990734355162179293104406898107410923214948554132171829532885241201069500796045290486686431, + "Xi": 102924960490975177218733800279730587708184553108108823056959190673366146076844, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823754, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_9.json b/test/_ecdsa_fixtures/keygen_data_9.json index a8de286f..0cf3da56 100644 --- a/test/_ecdsa_fixtures/keygen_data_9.json +++ b/test/_ecdsa_fixtures/keygen_data_9.json @@ -1 +1,317 @@ -{"PaillierSK":{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497,"LambdaN":11778475593628356866019652986619468815810192540395402124514629639736463322624078086224343058662870777190768515536371103743683306496059929634842914103659757833051436055773309803568976487330042490255842476297439671293256098762704899675212123596446006081884892295771273313161792489102096949780536078883928167244014398007880035418924512439802919522545971162429488284495511123589735898176411967314615560951167680498762245290107103247665264239021538896936535776503008936989564197311594676749958794652286693837906328405347303453168324582933421354119370153620792868127399582238307388290845826084982273715238320371789512667658,"PhiN":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488028796015760070837849024879605839045091942324858976568991022247179471796352823934629231121902335360997524490580214206495330528478043077793873071553006017873979128394623189353499917589304573387675812656810694606906336649165866842708238740307241585736254799164476614776581691652169964547430476640743579025335316},"NTildei":23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,"H1i":21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,"H2i":6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,"Alpha":13574006706417957056077957500546002859237886772123475083552490240183213265102942914561427555788089019740187557758523104148034093111134195572774988376545664259084085493579018375214368878394201292639124248663231036094266354045993253702454761322127283368164561322962291121915673320665176164698579733568427228712449528118218042801194849040004092094340041689965299238305003310389116160166322192742218480522811124319226732581978381043085494425787904868158646107577314620360468133910219026945266559424739018925800183669743020510686872787161359673680078424856879330316946038977975156187758657754916647195952759119489080078084,"Beta":3368572885227830120577337369914133457954673170789924014299810953126882375252061941063409538429477737161503355044422594289166726553421108273444628835207076905388998481525199177460052135355807150845974368964396209956052339025117603882433811910204008553689431193960900045497939995049985843980240798455794760461540605060885176073044704876095455728570054989601677144272877477653942017661058880946527227797707703466851280934789334578626166056255605882682371213075797882607195980076645623963544077163777455726367735193799471012661175632079566079639704823191783190997105393776729447873825100310388513305477070743221351214500,"P":68535364942704240790896977388939863675374525979478818946218933509914983623778924130863062343561916329516036364051478791409031018462450613142104561714563338834772052464988198675987982381110405046539869083073036988987955489628700300428925031060067314661013879749182869023790642000950206163631534989100861038081,"Q":84522362496095820454029546944829542873119792124696293174698175104500348308511179350900115192847900137100128758809379248607332881150168139052170628266136189327661812445796352134730686565157540839761099643758192538218750630548317611238227003594490892837688233398841113625299439247332438192261642865661897448091,"Xi":97305501735984994614163987963736012825588521267518905518720331423068815692775,"ShareID":99910913777216787121500121711080713911605201308487494263101624819470958719083,"Ks":[99910913777216787121500121711080713911605201308487494263101624819470958719074,99910913777216787121500121711080713911605201308487494263101624819470958719075,99910913777216787121500121711080713911605201308487494263101624819470958719076,99910913777216787121500121711080713911605201308487494263101624819470958719077,99910913777216787121500121711080713911605201308487494263101624819470958719078,99910913777216787121500121711080713911605201308487494263101624819470958719079,99910913777216787121500121711080713911605201308487494263101624819470958719080,99910913777216787121500121711080713911605201308487494263101624819470958719081,99910913777216787121500121711080713911605201308487494263101624819470958719082,99910913777216787121500121711080713911605201308487494263101624819470958719083,99910913777216787121500121711080713911605201308487494263101624819470958719084,99910913777216787121500121711080713911605201308487494263101624819470958719085,99910913777216787121500121711080713911605201308487494263101624819470958719086,99910913777216787121500121711080713911605201308487494263101624819470958719087,99910913777216787121500121711080713911605201308487494263101624819470958719088,99910913777216787121500121711080713911605201308487494263101624819470958719089,99910913777216787121500121711080713911605201308487494263101624819470958719090,99910913777216787121500121711080713911605201308487494263101624819470958719091,99910913777216787121500121711080713911605201308487494263101624819470958719092,99910913777216787121500121711080713911605201308487494263101624819470958719093],"NTildej":[20539613942852364097890357541124859329931817468396278432713468646303963073659662742703665137736867247354367523800071318544570641421320510992705137876681425752810096966415479528824625129989063402576946505816887222102561441464103605308386975248012283762854115939987945603503283072741824666735245204091384515192454349252950007899626081034649919068642018312817079235168086885705851677572363277983076857313399016624874649811334825694862350059490166759704819411086564625186038339099281295128259092469609539775245598320922394808913338827772001777479207381548603315272620456484970681705115865233047669675602308688791376160589,19461028678249357721701139019984545699598216253588699892259672060166427273458875608319855785678884811755179389274380053495578644060470229307987007292965327985966772681212738091909180148035785695413643708212165777295662698493311553457174395686873169155288384255670661532430410131045712913078128214239252258473814281283319061613409102410606683119900924722782015902970301519339718368508022893331969649513655635811522767629123667744907556474126774472529158147258343482417188228144974952598132795041139358631852141986745214674779692377899411672630850213748161088638857089501019216868292821676374914063004957409393293909513,23815206664659393600414832732918591362081086959256855451108811883313935088830793690110550688160373127903180149093000695761674277348327575728255258492470452704258920461298225437641154249481888087192237143947805411796310656512191138629555279666557122333244803756577286887501632314162770617970064401783626962319950524158923845138939649762251756759762119774585338772559055859463599094869423262313306255644927649977403492926253217608523813644206820059309357940964633363130901166057002430269910921882664166860038861390305316020579398429144038386189480114288127704265879389663380565983482028227028306457603727009698486364281,24531363009049563762536664273685630249930678743601473345646756718446749360580428942513295608401046098557387011967587876621178423418085640157221932880387840241062539585907115950101921176093340357598786734576629107604766098059509560466283874031181440387973563913507733219768477775440248994272649062713092103053254889978195382189063452107439308150731662099755008823588080977928436274879799764825887538020606485093127463680041134931480024720440536560752357773730443722294290727915022250638670491342013254556128005158924861347226548459626859027825687870031912255326425000561908947972742109607669897905187712585858898757609,25485947141960036800495601740358196336268148055632283852581334267632567089581351729697672659186150817483946028874699734841543360085445274610946793774678284845142698994270979141586640525566502581978495871744643885460820923876472270768798335817566781711314773489485670479771252073613546268231833675772584402239718946768734191504723089294480532048176604551680713541748910822012363078082926628834536634899606309021451196325472880525430322895659546741570135136047631868000597393506058143850364801619503318165686086392731222189995494225633540472226098357551602534472541794408218767265775850366289511546336446350346021282237,28927199961592509462716713052933904239681693743133323458100757563361525410670677174848159248824087482997906403441479071298957717300803186875289912194352025314864665854179681659546207985006650252942140268140510157106320849846175665072784539119695315757729095462689260495430463870222739869312073694346079553731438032339737072477343055235278557275309616493517920166164080693605271556685355062728635594753076381152709174590915306592547837200121302421882042327338955791916538647734045471143845013412592155994390976714634271247514800401724247381959070976404354024140134277339724455784411154537706347451440209596089260579033,23535119694477523772171748044630208131923028017288499693412795663706886468394056769073862998142660508474676105711590469240299300182072142961838102383606369450702330959729879893242049940029310408964084662077585876233411878169942718467081776763994846585950049650660912827541883992039288017630464390592382481783566823924532043610685633953209522603678841504652207254189077646669746333277037092923165111872444873598439940966325805716105630151638779643981500665152639984434504817034412086671254173379166038071662889121653550757613052820175939040916661555723756176613161036717523938816196299007092417098079561970714605061629,25950783447263038071689830748627856944354421735888733670277679971199180982562433131778324823115329151828330351648021612294094370722267669972986008148650808031918722892417970047773133521052009921040352676366121022268583455702531977371124075420219730460605780729481918672698487964603151661149289116143779941433746038933525309985350586367303720987487112290090195247099032317451409521767630753382551078895196505751734814139673689437231496521554705226938471456297964527299627857211400740652357956604961830754401147898467475649318148547949522809325493238323065337997986089837089904293908389128632840557033917922339991780941,18687318215344566555182740902454336428592486945614858718824661784376438207943593936740995084200358460316665071770681463630810552799361606949595415859491617650913620153502889285378972038135570359724693463761135116433672709408902151793979112715679738392883186006369274528906256519536716049908878346476950103274343269649895419042195937774381514132210454482820166758270346958078142742840173830940449171621914508101385104081796180941351697633772994457709351610367195330318869580666697900958479010130985251846923421963647318437209519428820003347978947799013079168765159404172743072632243706939700207639779907975142224264481,23171083837957860801722218699383337900446240030786871268841926233540016534306722256418697981846104677203759841627977766724259030420015851980511088229043403050763668171722648141766116654882525867416891436685059276174192868946692072206824573955678962077288068058032958478942750338128252470165933443869447212456023356245726416751721989152798706366691818486325734110680894776063318626260722657549472271184224308146689662638536101291469177898475337027531732897213355102104990685266062044811809193138366772764276162181116512200063463469172637189164324496242489479899844513951546392297220122152709400797483802836017803985829,31343857270714098359641269819793471247744609345771779520849062499842222751853736635128030263011267623933026775894009843057499037409921342064326054830123558338476304900840753732976691522721379417037190976719048367738172877422341695489954487825668390415147795382659776979019893183466662138357984500601883268994989224933833342232607751640920642550766835871191739404896219865225614116435580799461951708239551693029017567595268404121330207564314786956323833427106966279493560190075571199071036639702485305576334075428484139050116713328535867597124971991546934922511844853709001583656359284723717084806850145785405536911177,21157487427733991932564510362138492162446873104287756897983482468142107066461483198236006898398559574298806811271053872211924774119515269456039458266616445024300383802406544466004007569246261860103312006457776588799344222340569710165666518367783547810282003032927364478322210948885423703591814633243286070072754280297773344097615910071723846039979528910869815670975142743376293197136856592859188733532786144697373533341877747464753616005694543102759948736736802569257325101204596297349394258616025918915521692968786299735438817719576226325356937526633071323693338940757362235570825853130085312301448111119042363796113,20871071186633559430638470998115518791893553646420368867902204568431630269565952322291766136370093127894084798814242475456617969102595313205728405129168253735048454253508700456761223106599134617920774227174015124829476988377890165462875183814841087993485125686632410376362585538078467534668954228084080919739417042353928509644795709201564083148094079836306167650314513450129297783489119015593642581024870311297891618816623633162063381775243950740681581620150958717466968747843706102214690157071025611480716612116918336154774385432247274600064909320680551901771492165221773721500541614228617829117370166464409020423677,27392140202372139560911530190722295626016991167776777076251374167016701252229100335980281077736021393527993281083564981442696373714433732500818431355034758384480955155409564373832745499649881975977124862697809360957420580753883129965594447943274206109113518479198329538838000642865155652137973709624008263285324174285285129803357738290385065522262059795474318914719823768887144641758090777562619592046692917101170170722723905514971631800061092086777420826999668590868568525034863406950714560799453233548147404988580929389926995856613912328981176466707497680180241272497358147647189027922268738449537259460751070153621,27430458285560064975603737623690566617914765114564307656159371148918349993794669623672608540855772729568670170546349850367039352526804750358257162362490778729908291097260480430890476823722553654389178498566668573496227008913481934125881578164602723285712928871252207939941804689355173665470036039114037118963971589320342018774107583274314158608546842149328506685304690959566263296291871998398637364399822435359987280203416832697098234360106966146607816540746285266790106830402077656904149244001383199485864465648143588026246539864484902228828598281873311925831114015086450712030764672165915248196209070047454495085169,20958576649034914977467969756965874238364659071947031154211972997487243461262394795340258789930977809611131615831278870909123144191655991893039673506539165135637011485008482874021240555941833074286915507794874804218274011487390148860550531668300157069443584231888571925159473970195937554740938933226402208131160317818926784959057391389980505131685522579677264162724011263439981256344785140426649255485125637348357522582511064347878764724812085894898146080695383734063354384186594813474135513405234523117338489484424618032520881618202129068318264606277435174234229102947510033247339629069254901430086639327996737230861,25673210614761004254141737312053451635018146154378993341101985326929566270344015265597835170941666913606119762699769929117810862190840467973932188558749547474174367822508601158829928161219529997833862214002106486508027112865708012732033692783629855485545330232068552007350877531730729790772847199443436084419382562932662568511421420283558235026303217907581598166628555941188586096538364407553738314729036218493332920854764055946289816665260688813327844579390598566768671973314358968068459214729157676432241630688442073088681756498136814491310636028421098965714509622937097403466307515165856202257786336739101389349089,27062431131775909264962122516003720577621307700606752850978674545503762322327045712593154396229756047740198870458644425173406714147601486563284216353367017457813364860861671576291918230182938220436949095109018225648486931358793025228571750572403143070647269508389021099989559676856968002395615757641794675119572488971947338527037552287756390904188517823120698354616567162661395526975254448758091053074808436661809101512025437321837959528689272191238705432334775200965152419124620293521962173467865862080429867958898040527206234108561471429991355210673373595922083144022410446012714221026174220695995286555692560595981,26101397013404440939950108603288565551073409553356897393691328641679505760230621741096317929709636865532238670826796537369580597665138924272200816037026280780915781305836081579178356868109017075793286763556497902869947712856535743263321959264839901002581734771178344662509473227839268090064000382806059250315977679226653239225555007655990623485545590336008766750972486014525144801720879444739045959169483687885427725508164188831961197284042818573448808100923870021600896976125650269597381009562192855793477760166114366163011349461311146903814241124631772470784181050979028948750586113514587005436500903242591757553293,22437602225740742482465534898349205983133213895660550238212001804732032977697798637757435728694311659299624886491819969612531644822478331097020027346346025174540910579800256280214031292073085792970245723432769912206355626120327772649905875827091190500315669126429992547075064736037570537735332469814000462556933603719315364923773085086614780916637137068518726889173784282955430621992569759561719528189938429235007732504425905045067985337249988673084527372002559031400047880307427208848753891291386460253720313523072063965808016289774609282102972264056704286287440985034888143293816594327214769326166521224390393446693],"H1j":[16370062914568124684409954423220013634799944354368183091925443712820668316759795091290952642141219645055533606292548565759917746455430426634828957426644826424037530474618159463204943752577732484149675671820306363344833458247384057865310742915406677379586789735200748327711872632191061145184949312294612467345847214916930759229195852858849386686352293049987465485866498220082468131280135383612600619493426252446949294373638968518891137429993551161437309269629260378927918725566711632082553316166822070110359114229533322390061282040482480263995079579444943917107997110057038662405191417861817663789094790962966996587522,5792666313208572350705907594949414590804636531753541567087068453778543363077542142305947911768781865374122070750607847515026168979710170113788718287465368491981654823945993941924700096393523941715256095048825025361038086570514643251828085846380954791657627403414038681940866434304045104130214177360598208974353162505514170835103706979081795485247158115653501838694614859268884296606546104394637012764653804556264770973741677326601115655746125293204398034469241183574629519235451142797709676366285591723984602961129858687877266469708766607187000988412118886394000517917001485137799190522482532376333362935442751367745,14510201356793997359892744405553071944121896518459738320470368478827891282273167297002903311912769777071155241288755372185351193850631471716718530488323104261827697027757019895835360274243188719367049075501436153398857359555924247334095665350350441220453460409146684994664351725204034521761578947269005519140498383255606322844603919000682223940913285551513356600061526959181206093504072618536296265435830192715190515397064435874311583709516596584871136822289753837472532490128304199643440789002058080030111113389709287097531544417461853059085059819958060220257218705882557929843952675556987949500595639655528439052202,21994027187251658420706956116678134303619268245311594874227984400819404446053485122189884678892175444688722527594580466254690437593853064923544979570444911946308283663229116693350631331935027065689358169246815279257122823014594309629197723508317910829246255814111959552337648906237682616732913305786178221005434606679461852547394872592127050442856550471832240167936976142756988960345619830477159914332536955389792251800932867389016006568741180137556936582683389834385412181167798283357296952856933963222988284608097870458140102834156304710781157917296313315513842893014212063887070100364867105131178923785373561146050,9913834538682656788610829579771569556624609911472542281771864528920206652057360227595914694025069327892774241543292898072673087864732558768588752951687639831868499912733997907550450742144719953844448973554109420086839278177283587750852958353526057789017170152122423018814264172807655239353760715885145548388992476483731471865364270428702324445078126354834888878640191523880163270112743069852403951565444480363239177556818094412397417215136415082364220806171351930690164376890892251369372868624028034980680685551131786332553623705883769998271596791035214982761974622986462384695349153129828098712177799482890430520965,15464554656029222110560140639422624868539470020281691165975400448606613120973644407534365935510334228227263162749065335291017684520353168923100727746351715681760916446206803485743114757577242723665933043744987644589191843035807511863595701170012104449542518101585729174897996392297770818633483533801844500665798250501473521227123975005972911918718226524366806206633841675388137041998857549215313632375036761617534744890091542919972307048750757690677067439820416806817051344016166652866968067639055986253789416713411110543055264622333767216550525033482750914452894139691102713436731472281130988207399023815239852528906,12865788614422531768878171769038267076266208200249164027644212721909963715015912538682157638127903293282023380796412378159235431043017021949518573892381565899437599164703723050587964116914107635838030249942901605297513982608974593500166572552953195544515492725593747884602852061628830280449190167844572097543184555448060083835007200101317266753106995526429573085540857281097156159258319440414895242242967023265742835942344738184941128584859242462621792495405423196954908356769683815889035326257091875874458718611430785903143039161526479973858541524126951528796262613552089943663340076548393182371918642954593889432834,22194516202811321146792934079465991238594712937226367504517257988113211333368349800836879103947252405610400726941861867633710543721876626238467090611506859331575128297406631557631820626534381998686705168632059305910804423292984195597625141279765512951234238593649775486094326905655122386938572411401132183960062730500896105597665702000968846572795357957098192758080717128908256523579293163137417423771381528097786100281383788052729825837521137512379280310081930804124457815661946839040621474089357381345723789618079958299474682840114875558952249988571746058484000722421698440994062460208554903525444210802321182968014,2022329329707369117437055740094404969047484980501833952214571687130852032499620508208708908589247080600189902502365407836277381678968110704345539053376355432754797822267575827372488857681103447936055038802753292113151984972961755143427625893918328299356797405969999266508287378495280713821635381697950988327467894890827305051792226857027384943282520470216088404776455333696749084292781033264737672933515625823807581567568754027253581653106384383593181057349330506068884659072076739226363616897242406137010778123983315619151551375977509919335513557274798510437948502408760645678633359245877721858614575061700591393721,21638702445456858422878500352234793329413106731788942261751796025224145517964611169394617788434763506002565806620170893339110273126875286455095506459298086020278318872581385674653253080383128797980439557511752718258375238388481802546638936192461482797150514683008473213407715728694302414916863995043974867827876036585791719812271742103323384468954527534596036617313432433874380308883492321501736879178345427074046787174556058119038049586737477628511165980047288251497278209275581664775606335268904384984155864116270266473616061700061527150495070719210903471680082400487754898061609554671248760480063619759950744280907,20932768206097680299943959313782719928339866139959731166252002876096405653871733170637914957728294590217455322823662941811142831487382716004980657707514358763150029924714520812685697751484102120909926147024006189544048800446501267477163792293393919588659127430522309503845365000611784195390022621092266420671288509706282186373855655358090019051530324622779193478505342408854462043136412488215465955955421082850282626458587043647758494935495915329050933653468179762936320308005669155322055934931071589853638981754901315764484414249149121368560265856082417024956730272011998498550756243974623835494966366962683389714964,1365816667585940330490355905311774458514715320376130020996515573937571923987574784307504874484515899610747050162880466334946062918938639620242137371098595406424267003818882220942016240927776918797542668204898851284066695289242978919397682088055368818116198595348273129318762376760634794532531433638073562846988038755248023571028829475051882101071203979111269507596248527906600986677728810751499828436067766182628039345309355341295172437424660504415028913205507139100147921515616240146193076677157859750716375066201587358526136840334151066553547201088947345861316322897488659331106732575557394540428972305438213375814,5703448175361065536885380258834894924349694750000788978424055908887487214267289314410654116737467233333514153490994654420800717947051017245903088635547080581089891657444714373263301759995815635072257679749046151543038146531810310826817366207696928190231298874979984114964348460891792295427444943206125809938612729939665048974349693961742238426880015130297226114935093282566300228257419316454068258492582819117310017835605391570376283517758701794125467889060184214275911038527696714000045849219024045243597506828846590195831908281658454892131533791810760325400211405258812142759529523572815227489710851557846638137542,6412242406353564485058502679404605624009190790593030266854505291800626778702270387175472290319448965303250433574173375628339895100997329474893279692868549940279796264731093585208695625011062617868491258157215447275957107991387222489580499373804335870682739788296835432969262878909434810429803264643527538555130662379672012787064972208117475596665593916782896686056579449802576468324812730306559649834202797329883549294599723290402017221639617907711497472325019619452322282704828796586508386419927496666562295856731151167316262475184222145101211618002798513055006067228431048839763646095282531119806559583105533794495,12506213831497706601305625665856619892819919408470741644330076368184175310515183251146177621238406207206410185643656979107225155831507800032694528257147716038515158570256044209419514879851010106278924359714862316802415670557334433034976750101928783991744583819411313589306343712690219032368416678985323530251239318661396466801994308940886752046080901718450406046375904389766893043894196541576969928137946704159382893563356338387889137855413730990126192021766856444171515497507122402917749807424621383187173538906785892654668489198127757882153223185090960714890345630801099413698632285321494907662894187137142803150791,4340320683992731212484211057800765907410470847269768304639037529290512671362801376775768288042129836088810539204858832843247178308000345604701431226310915807542068901686097542648829915466491213307097734259829414895234796525272600474326857346693882386640793824277606043756669695477090601330450743232413209505539149906338741119182508496705355703793044044384724643256986023764031438551900073624644692938223394706241422593949897781383635695299729171084301185179708550600098470031089086344919627503113655735768701217637285566867914251954499504690075652022468818725559007318841314414541437592229352428286215595483845053638,11992304082547451264970842283976418853821301172975086658682116387543359417074268643442593212371361490968819128789238354995117145993279593426471336648259583293294202599078859260437992548184464009386152763827946804967424362206055435693041324410893236957405711025923054702040161696386453571055246924713260145964584750230359074777621444549946362450468684233332414284037283955916761049858000878784786268023500095161975906495439332741618288811384519280375489794382891880648564800750663555801045203854227681083222146920912455217541211811955477767635787030014152643158711960638325867606918508708678622347924499914937535267162,14695333877946105505101457937623624377562698430478247685331048607650568913937201633971254630714736577175024535322415669442798271475956496536083972430246897654017678266490639701809689918981250971730052435032797344400248226649579239038593902835536123498617918666329121083751772876090103853533035181736615043011673643017303605152279678650202512062770466963460251942403425462061196179491356440328364636048438335959347603428717042954470887883300891927932651483741068303515425618933688194621659816079976510221005329843899476003615861655015952079393164902282608831513778303062716347528913475870793908798463564832083549613643,6361624891550612817090909815430156259585522002511378700573226127309539860650523892977168943678195716824260472829831132024282728135758912178943090813161584286046605117495775878170654691942858452263763077967647297167266507685944611403131069163214134338169098006751105941940463654618427873599267528041887836331948305951890335742121311832653316741398094161561749334956600724220433324620401615490879450816097431926849306846384679126203940987154375373597650036103822699248044107851648286585837187416880739896147553285981829664828869063480707437325000260106329487862878699057790666160151383639198420965781777521408308842299,14948927140088320458060089936345715166494298631495857212773926944790409869483957673185876995292328343640197788589621807184518806705821872810447516194927678801617268846361533345460325613772855110322242304569109406957894646727384216069315325052819333705539766154972989576988248927288284161530384846682668538198851543196833452065614949748530253693700328342501577900059842225778082026779632761099626760985225309957646536118173500439351182747667021029407125807666947346322131872894915154624415940708414296769044070685030466034270063053482191494419465005898644603408406165778424189251953592599788015054586521957253320449350],"H2j":[9653640790649475435050720061635061544335995170813227062007808546473167610366804040613054457009646767723479128021709179513573358845884462519136809844401815066012655857973373223748942767836422506840658738556503260986697250346171921063441485400421533124068250604530993514803166454504801884882297625678932746326066096923436475087338628767636689481829832307623108408425959669915171224014581673426602770656342925462023157550194457295116217893440581116140543598050947318929500123378985275492765280831578803707538206440354119287576298034238031692982504012470196898579719660373199491817717767711160029710911173725338539566802,3578111860663702772408903345930659472256129868015762875031051677614699117364424442270785915866444756532836287879751640816575659073006676007210405202315496945346450727441553016187592354415793891110773645408147683476571812485850037389853330648238106038729525075512542830213816094853869971661719959033499816133612736102442725651388405183329714325258711655979055386253406319598230253658818466953001815116530962213661362799968355793928849708876651937113231862631691372187008559216884922263381652908899796744393080985272287681952842592674663712445064149288160957033524932550150413325097150870149209345404214256294282382085,2562656890570835296352376205216590519360952576353253013086344012422175466058176642832419040937235521572328705583208834436813588375562745525224328564354560731400723267162764903064018742843839822445601315505274421672289602485557719646504320106522113645676636456687468751723898215955665240524139836668877382766583475339565598073690853848639545227831264115164596396262772422415214665834769274554577301336288865874066248890243346947740610544045667761548206600923673948174739356732295677551749947395385332556227074205668024351973201205328576603362256016900712683688241615565934460363012498930253514800348031700419220337084,22298685304249156715841839507145325522077048988910268345524279200863227356693376151033928569980263444962701165900514081299580440300365488019578288962534096517468902687907593109404000193096117803450936780948162440311950526862133749440555125530434273281017640257175046682563772712146188162909037424635371282116160809281350332585723737917537784267577381007869736550494661878733387948458251550312048040279754696568539248453484809390032249968377837207868808482658171733689439009562188880777607125039187467565549644537971596666666932158369857160883674108786200103009448463903055431989786220430290067137368612432640074310237,5879475324785385886080118453628099122983640585548725925692818787221734315336181255707999432375105366554548265736590343628955580077952532008988837072008731794155978542038914506112861039350525606157951017828660604272526605818549217659336563240062224484914310161520768881507503977620229908361541865095980430141394883457555144123820008061398004875781145432780438239985999952863196781468403423593755390719871396312035325131303835880979744451815683310530516197085535308856850866798018523735074120787646575912319226234213646284739550604897450763442470406797690674949855848424274918433854009972115369882751833585035329242761,18385446607341413929216752317617998458160849115285197433981133872531647462267817752048089105851349541660795002685652456000086108157981979426453705134803682299691630928200421847304354380350114763235863451959398215394354125874494984531309790405988904217354164073819568789120760731377280912128364362051769093741704293517942028826498663326655241508795914202031051398724638536523567800437872676476082333745719105291491676453403521845621182329449421075607837301738332926110019535833222421409565228043580701032497151738816862657210572819375918881851411438625526045192015060739626198734346744421593858157488507552447503219157,1543023308301318791291636723263661645234407352972693347930324541592073282303070472660827743672362126204249434834670307886593868303926045601951702434485524524299146190187978789568968092026789881246345813079894138764374868096047892517784410005345559357208978859029831295378789933334638460830863012154730679683049737545160281582305039520027158141403805442275432519516975114987511502563484403828987844187725357101956491714139410763551382100998178318863295224089354110436171289236674317711473441156004575613857935802947903186710273135122934512388821226072049093290647716152026391828419205457729234939199662889356527012444,19612969155814925927900736991694631498815639143900750081709470615537990112217002271570654324774711607889679093067885009086620212727925361021546388555967618760690930383917718167829905900473725102007606380323545403188303409627969907029774876076466652636827981089598601596821629485556381455948439528301393466043329774616323471054547330305463639720319551756652789237846520745512886328152641158526571443916940675394167134193466655448590323552123565655514390433855054114283235652222186673800138041449545987929749641868001910765212175435331820335256408276886037716378072029444719891008048297796893611911457701948988529229282,16728597479991680407332164223276251930971882378040601546182090035388885277790620642130984559023085396113670088325023048100279567479347085329073035696608554975777409036805727779421519384442869313567486101701856985975948368091166211269762554257345698853374624187196304439193724792774291722910128170261256918581442838390388813651239625403911503915460141004046718650178671549506593787333200145941149923809156438433492770338609398675185696331933468246886804722117355530728325631706711888199439210221397335620762682713255422110226515677047306270190770133307509623731091673964502293431264279055367772707113499782043802219072,6959317283624626561280838810011851848606573383456333866356771642710009365943896928686358713606049305764133589953562485262421030190625379899341516940088176438653144375343629199857524649360799157617467464667207079997090732685762910728717721600193091207478294785009859545546272657408615665578978698966309579302786158306046780048259033960048367018506262121833776982527433736628482989970739839626561164331780819203300647377931749431379962789021848504353274218995997754499900534324222498419599756583548358913120017762065234354717544865856293340540081744252368993926137398125931373959455585431506453093937785431907339954440,11707820384786665143909181917722140695066077204138675859555940823963085499198625584153264077484611920625749300043796981737297557284495008476240804003977980903028035986014301427047695461308987163082644181568819427026377861293089760745032220979974314071873695748444473344481739404234865330820136242966321355292830007655295383627072182012764804101331409332152687101319613845603099019594628684448783718018158413013589965095889558760502141979036830513073469713570347578185733951700672935586145889495063730457422516713768592535269075934288536062686021973569079600458124449475763651523966025703378628943004868525425132768470,12680113365919882057574106113475868522128522384382601197321116786250024227710942753687346378669117549887826210207932325610070970266526443555090342822407043741408930676918514338947859254583933603158241276952467805479024344654828575004834480980171788527657050724406198542408746742354531228386476751247072501617975174749412587537766151828306153888252035411082379552917399551115964687725743020641384211728557413837203373250893065347048255589312756928959773947595990023044227966600250595372063312552514516053386563033360883348059069724261103859193470298590631028566611086928803669676829225666250863192855787196720603673760,9019657743968669607069997647539968262488442864840563257526073127843215521457164945521996034009113740811008633126128201485876365964359243077677187550395794512954090076458031575481109943534530172796807658845833964496790520042423061347000207701119849250007073432625973802817311058171823571086584900654526615124913824393095137876668486739795620319593113487319306758076868523633806281732675535191877729151172494277333403640038019691517232275137009983348569240826245496914996509643617684093222096189728055561573909735610063401084000594789204303691795045753669664876756897469727730211469836756344045393712182476806348262481,509727692658127329234819348282810282823358222955712460979035976368760532139665502509369544837059902335508770138210475703837249689840377266421270410968940058538125244069674567645496962345390684467242600183265156396927471901904730403435725549974213712745153254130090979413745442250230122176329142735628394058559735078808655502950813887104168441824680204081093532561399756958380811786995754253778833219233414597390819387529718886819478101169481249247654168746478268826094117295037052091370216680279456693786586815595643437522530315484348520350527079378100131478937805285900851443697897872168020710497135465069780807687,3842294189873253197555038084451026657880884971357471477404186912118522652991181539287485996470843289095459960588932515934990566949413638625169611068786524327230092661471599333492933504858312443510340452825109814219748343465626968500133039743956522352452046474898271016421645025612565409422475581907506677274527441400119913285024497410632467771786023570373229380492185234340140113773065511943229164821322784643171443642045254567266530741214826934397811463635644370547054062567012016231228876473774669826378368361454200858389911185989849447377758286974943747417740672897265471383352127822433439855380640722238771424561,12605457156020973444763168611522695283402376793806466187139735133742095649198553225011255516233464381926302993187553632508703365300132776800901755737316341235931477791227746456204649162573568121476427289406145613748980339685673661511024577823438911510307584137593479079190723698666793670318162798116104492476114229973922338166221669934104784402698512349426984473431614385866651807327515058966935011035923319124790759086336194395000632944700277782112868323483780168144642250558671981757792078139349701070563555668082796938131863328410412160150471825619049694173807371104601644825755844313657731729068891163705563867555,18221138784555811053296911040444811422299569221370698341523745856400091281377839778678778328149110548534138934160836481393838346908432982920562116626677959686450236292050295531261923474882738697393510842972966810110218027601675376030586402861098487543863740705626110087204717386977952136809165092530095562928623301371629208844732733664526090007002304626939446606391205626126192870615394522174649688440887870385705569710809581575204639778805466412903927058799148697158251622260213645585723159916754663707237605872275846686566820885362722073881904277317597403167380835907876296870877478221646920284310430371934404822311,12694464409184116198175216134705674117698495589897734763290223249700439697747213221960704240817308024376618649511257185410755720163743943692791263666036558979570909072667619923266653682384882259644954119285287063471541002032435823410204495631358202104734018269537402171761572193134509812396214919229814690930600798504895496564687656801956575973479011431776352638782289114699743527186781919502658003154674450714069197242726393985114420810547684173494018605147976810102913734546162705259030658206284298418521349062777115509219489672039075093329236647292016824670535351144784388483525751068225542810044999850751665224074,4201765615355271720665237538919680402664127861292891404309962354268106831635826650331041297039291644925592311983403700464576600435518882156854904159089879201301912105368413055078865795374091914623189759593456721300785707753873135853357294442043908826331857106210726005526370024055346666586491341046296314798619327898858072624823009991437876242325624019938022318176060332738994176297193724805935694309014605422020909137014676945305249645201662101488974241605863532571828450201507584679493905057922784236072997143238879363168245889469038437561181276242698369654938178116001428367837409133015026021079614840533626761027,5693818583095067032554302348404689889827513405370432124730856324552577938645345928545249455102636900381970277642590696482249653647276002965730520652542065397111012479589269283364878130676178205766673654461574816233876555267291293343730094421360715866449358521574582941335437947403997555554148186986038285554629922609604751054748762347310142603219823359220130919495866316927224981350998367935679597793982889611172206443879512553133682522147111994374985808397513270886689704297115982752710085691562031953231724109895260045500479387280386873351701423764105530811712645875225583048344423503433093456461313617037044573606],"BigXj":[{"Coords":[31961961449149592290215619337342545369164998201385135329342844666166714363705,64636392625998908156106021830673034903148364934246785109426074897879798496695]},{"Coords":[13561027879868215202586968035768135752207534764402067848160241312364043370282,31683215740694624076579960720726613640416539517460242899883851320256877874663]},{"Coords":[102970472861055393328233354777448191839076263179087526130927097177204776801806,19849778771794568183958877322544789075545226949228544528619329359950140265115]},{"Coords":[8366486354279759555693815735694831293559828965602250556327317858912116678471,24456250444071880675953816335612932507033433175255559522554349078047625549678]},{"Coords":[93126246885046599201299142306317944158536766260090154798797491446571717586613,101632074177392193573512178573083324222329391048269493231849116848088552218375]},{"Coords":[45944473181199785374833853975473363930687909609574532965286298616052742734642,49106561873713078177518155217967815241790729328033604070651886838013799968339]},{"Coords":[88807289702586806295763026580879412609419986472794654189482668002118698433065,66889255218792877467551818840857264643456782872798377645941824720058728156412]},{"Coords":[45745777770010867130655637386117976632006388263133845103488205463444756286557,58413618959379828248439575493421719547880693819703454359788283537541749522854]},{"Coords":[14931705718614911512649079486924798218629483414127465950786381421646404878840,70853895869521315016717813866703398949051565204254795550601147911581008651495]},{"Coords":[31702825468512650039750289022997764002837389172468049717092331147393818254752,90704921170203464181329063311130512192295590723462840980995045506481351030148]},{"Coords":[108133277897421036808605843118854356978565880360693563552498521263092161957794,33994893650793696043114830343063091347849012751372498052809673503667071259863]},{"Coords":[13603746174106309213882605187834221055267478293724779491981408043396477605150,47502402322605913877968636451206238145707201411072573659819652572960084227380]},{"Coords":[21962637032374642863765173367353663611071785709723940819398260699915154728736,65876190623954751874122457014542214494068664571689464338691288646258987627994]},{"Coords":[8139291295258406047002639746372064115101651961499427493344848502049438028449,13643120656693319356484507306610353728697986968072320539867387334577150577786]},{"Coords":[871083651129542234211830236854985246175496411885064575219875767816674532739,100904963893789549224657775356884044157291453214379932308347421012612568685620]},{"Coords":[98028745019433069815621229762947408124245116227553507407780733119772046992520,60367568163137055112812282822118701471566204774343904929920219271364583776122]},{"Coords":[37332951852807254347441974643993866127041633128152922228434313154811023954744,56046459898819968566785812285970001512876757161864884424831574905585289505077]},{"Coords":[11223798616675111197150792218010453124916879614948521844981845491687409376646,70914747125199464172751182264377339815163078089055967502760766110580370145293]},{"Coords":[62949410140974969962342726366577125978516456835571210444108422984760191628326,55668150354406094271153240357261264601037343235231498038021007487545647055721]},{"Coords":[7611358883569187056502001665501128526153865541559158134839099203014115911991,87617845479447207941483995353359860120852817257735643485765526341493112597509]}],"PaillierPKs":[{"N":25922769748919102678415192880711636156565612427571550685296776086119205445525743826557545692077634738129321690187868055737306626420419536394422682260657759329710259802294458956279773225258250955469954464209933873407784778802101265717840506851919529598154066919091078766953942869622551929743069097967501533345363150709912011028449270819442207860620552088412428865900112120786495620291333470644949767300948329241775121748888220588626655915013364614554467190860190736954650967874940702908395331234632114014125372505065096924932509595285205788545338407476139436404463823043865599023326570565049384032977060875483209339089},{"N":23930233287283899271771864413305422456138957780711273892670074191715648409585503033095084345383391541524625291548041741990557564183855401706042293717552023237439032182637019639795919249455653535670614575331737610284863144094845900714497635996654401300216924764570210541950557336240993007183309433063094227377624710274228010652758134777897718742178998545079447283838099902510469006366469099975469096355736757507201973304413688395278990349533350163833514531655073848517781662614171483003731680841330633223244205178982328422170273570503713081265847261211618499950287557687314846590616484106774575999250148317390509484773},{"N":23804125140052077689856128298352557083678652474445385365228110453726681237860799979845611556170894187976654278582576364089033396218674226546868809651353049956675922595541689542576794678062495339422204984765419389268325283682512000995221750412104207394441438666051694475950049774094896290106430636216894744335784327798634247450687264677393229214665686649911456587168142148024558282134024448427550922487022680890892554782651383972136386958126051377715096556862662265886688077689941967157694195467190297477735450118736949849327358586935699405848605265912107169200547464609552395233560924746135866463084686118233592906569},{"N":27732731445242071631661957657712700411367090291795241371771965432140171981887215839890743735562516245338158767440902124645306227526755834590210240211292920385793070069156192085968959067158127765511651425539136016999745924428061397793021945121990437538890398656832618417715425504589084090095239114803460787199036351739230987513003864153861252195944069425337294669643857426654756086277471320443733998616523518289821541295617435513033264977202437153989318832642208143170451837926277566396048774049270318848738844338850668187024045715008196311523744942555689097435377598835544336914580911633671909176827168167136470690349},{"N":24540078122494262833119917930091872139739129939617606686122284549157786865278292966087938309454800165081094474899057524752572006230843959997841521536274236615511587750039832014979332539924539915807860222967109230298738770371871063759834296194059907031260324597353713442284471130560805946122495294807423458083635025189319558646442212459161798625793784738344309603016513355951936699928410805609866016648244631951643648288242475041729105749202516848107495430809184564037582943457286768883109270231510808158554549441157152513493684930416951758705877335895250913277012541968048511163986915876606316087458297080987346429881},{"N":23068407873896187320610408658036992760323120237076281539139801143529656493030091268390954927616119732305210576479622679524747880246080257702939099128994719527894439722828526117361648236913823027514544862046712398251734066527697676237348724465158893599560473200351530224245041596340220963683429881340553208409699594299261181212989221107530971303522686320513564226387471374456547377291192484997988606654540899634665450162274963086331783789860908282085692296248300574631527561763641974772756130570734735297575564567681595756096492735284720794891113064512997620639494646662790341453069978107064092657029168133504185408209},{"N":23360724885676198523522179321150194474267520026708517257764444663025119039638464657158724624502663558960702469988070676415660798425916276572290617437202837750858738892140118363926690520956187802097449221385283612203760207950600195667994976400493623569930090999021596112553157677485561299069991215207522767873493631366488446241092099654975621689119086509041077742510323711222260189730828492291459421830791540197321337933505867430138627984859014648102694909985043765241359798051875756951108870386862501048751981261038842763679815348130953290890391440850806363449637432840586263665690832227799688631446932015796916844537},{"N":25572476038149983843824758627743773292157542015669155545898739136432359227667585235619146413408812705275735125477228881724887114180658812229689479785083051083069428146070988730518675361280497876215801249358736365876007532614766347833762716625529381645528767502376159614744663698030295284120589012492759402983796882103200388651743368106596836536656368370930363045639317610411594882976032564820311800297421945366798108347221120736308176815503106682839506833524058020959093518528060465861144447540812579976237229589574562145541453749754749768478003306870660214131556451734687719631047077200787163529663274266186702479657},{"N":22679491499676926565249058751269701914370165376325885490706178594236435587374452393672919867257890172146499232592163563478749644823548404207107209183759523050603597049541204457028947474998785130219644182203008088877544305999771879137962239304258371157231174473491797491114277983084811723764080082851754276992307408859865524067180300336894890064430698022388669278921501809909740064260359142339540812296913591956784925745003590749703099702370645409020780887758983568638652737043891478141095930983089074418014910987946825193073588506986312390146214478478314600989393866198945700334073322066709926152728868061176019551541},{"N":23556951187256713732039305973238937631620385080790804249029259279472926645248156172448686117325741554381537031072742207487366612992119859269685828207319515666102872111546619607137952974660084980511684952594879342586512197525409799350424247192892012163769784591542546626323584978204193899561072157767856334488337110957680579926475975853118319141371431419486620931003438350760541975587261961199260033262263106014958269750801811225868080849204705441859105664948039653986722714354940941410686784948916936213417318953574086609821961649007609305029496977916873440356977063491030736996785241653241262171162950673703965399497},{"N":25874692591276389940909836821933328634340387691760211719857424847912710687202655208899136151842265948895002254373718724704209721944297143062448179072459504026936041473424765480639475272190837266572978737262449980766383982513621598580661341958135147571122513631091491976191663115339463730624237942100977649124658328431032849468551008597071378488661492324861414296280692846039598797857140808360770338990664282941023358641770157837364612463858095463039043959476170224596463891235213200808423306885708639894810932553685021558027739945539621344374072593175483199343233185955959027063970833388545231587659014590298587532269},{"N":21093015027631740022404443614096248522776233243516651444497036871175728958780883068858760981924585432192986275662870128643941927265524238598903061299795143929360395711020210769824764384718922898979318706735662563638859312024117764087176816929100038836825165997745175858151391747552772916358596447916581236137266690055236206686429983418915105841208302705945838725058954761546083763560226985859597874827308926656876419352353487645531847757035757295720869824004015071252605178819856102760159009139713396577974830023684477215548955933062314225333947463154019890073099705030557644025494887348484646782031863159015194484417},{"N":25298229297396047246415163429032546137139715727559844391184017906947304850232141234045323209407471473714145852636924268416866274482603754141415609592221706725085407059971638122009913495964543366119323417218834638913881087432600102264473788528537095668778412431377856067113698729914757144153775835786313302871273438949909936263664301138604696985912220658568672102041006541952444982579070062275651333990266954050520365848194152044834016212084441028573044037025009772616765171118784908205140185837844772749992941537017860827787097838183799078426827486346760690086948873222139803967157701952297751113063507286886770253809},{"N":27142202438632787162126599492908508783692765215748557510315014134009044742375492012422395905792294364201376442258017321008269356413320158807932162865700040957744157446176162447390298999320446062496836729102114052332958615915307193716216287036998207324413342337908047902088094382893405585342830460716335897834006040665407645344104524772021574862180664953364488173834491400964015536206179143781066229852877159880337660767454184922616386524557470530917791514588890903382115919687896218697262329973216887300329083882938499296413225108475327673886217363092593458630101782913564451822536507792690041998191978031482893873661},{"N":24506900410165079432913879286738242981557799447704277709132563752281068885918764244597103897934251933625444124974453530023693766922128717584028552755128051187819589410024704161034785358235535327695240184593017832269373629062497324651346586921679971074785452914954524453931920025017233873766495332551435302696547239605953737313669053194482788679487077465271167890491044626060923037626210805459313170671202877996680415217025953459280403666974895608025476083146334864242075064839862857242870450430867849337473211116054259839281123892458791925377357496234454799948092884977174468592367921171996109259120511593665944142269},{"N":26694966767987840469949338865344547117483340362831650227215482575365406012636774021468648984974992022743149425563486792907591668251920735101399223711217247824036472514130615393737405150133409306326610912172081216216331513707092964488994949651842782342704418212963772590286378010081225253538245220740244206602153540135126863052186543426616293649543741875882042173380956119737322204906042367710990417544800462728321639324791151406955584010061660628304199783826293959912579926890912970052339895938137461119473504729752401310289221600181057106776643382986556174592325963163204522372078262520351770361427042538592078722253},{"N":28161406783438289776782541515550232234219338732182263528677255680862818571394539837092411279908340595856411618560352096707955778113841586575489526111758509944691006867155143609674220650793817498419172979829028602046249597147507621299153669762040424244341554256616377217119563525915851719009321686306763607672801085326365691030132510560260181669852932393003570340516931927914922146799899039434467722922041925474101320996856938035131446584298134298675299397155375412990353784006913691603024110559796744887732721945933471868150638226543773483734660294313186275340618342717882057017678734282256333631978096376709630195493},{"N":30290385531723706663194155723402482345164001328034021287910161482488063429892351584916277391109894294446801833020074687889362652138426091460224301803948089690115686705682426193759251182110547546779254274419781083851169949275087832187538168815749507922889270386625094587688358817642053715412200458038741309360104964334706289126542952674791148655002683650712544232003067953586569445443104249283623297733191839471659254940888571771772980381177972566220724293577306168494057111878161156955456998298372496716136324267059071403030493623531599851487444134766104137251811774500492630476212318493040236485031236879687941684761},{"N":21891762840438596060416034930044842446937758373617708235288562429502315391645647044939378215035677465574183685957522821315454029977571728750605988329881847569313802549118091978526315133726370633285214423147938264418314863217805659876561184725718735591303337902948467582966199323804114988231963307083517180657041313131586070203747291724798899561367507615511932716092324516747320587928666160741969956121773346301706809405054989477031949248189136343469258532041255092588255241987397760849320759799542054627513230744643622791455964220513319415609245199516100422991698341556744298439022451385568791478794837569530013904689},{"N":25360934335416714794999313991057897528923718232366653339706494176825638906694689891746545886915964196582662458688535283322287088397853865709093712398485753916163063777301385991907720781358632265326870516346689492128442283774600103789825609570294923480202759046857115137927714980847316960609776972337028789163184648676367675625026306027140091761009104192786329465543720196130052658782412428125321357130192023653185727111578488774341366834046035305712205910649341950409228079277410881842097288924692206421126356254520404943323384573694119449632324221088061482676921038116252201661916622983158849603411299895152156469481}],"ECDSAPub":{"Coords":[92492306118178589821640584737240636977398594678247616965910942704932180187323,27954057508764275913470910100133573369328128015811591924683199269013496685879]}} \ No newline at end of file +{ + "PaillierSK": { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313, + "LambdaN": 12341179534183595881870901159820061128416141889559407340862638589120859941601642069938294193203512698456917381704983998586603717468922870815309809013905382544563088196333849249693695618454389969165422375745091346843553127700649544271192852651072903507757048563694695742089182120067616466854671531569398519273247923724466609661886544142863270367501005507264159076246412688679309970028914167912510577158725915406546662373396466406576310830472864121331212149387446566428486969597433864930228682470241061400488434563174968029739549703581340917497648373893941771089835268862257120028903382899411835309293805314065063150674, + "PhiN": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546495847448933219323773088285726540735002011014528318152492825377358619940057828335825021154317451830813093324746792932813152621660945728242662424298774893132856973939194867729860457364940482122800976869126349936059479099407162681834995296747787883542179670537724514240057806765798823670618587610628130126301348, + "P": 167585091397985662234340747964309502896037410721484935623720892462453957568736845610787107356076934975756841729692786359226317116686940558454684079576744062617608368346419062625418829819740249557436244132526161459221502037366790980661372764868876761683881339786709603943735199100689877971832521518079452785807, + "Q": 147282546809315214300753023478083200925965050389177591499356397132719954996670958620155346268535119734898939140165222414034106336565262521604955652049353075158013107726825585436986170255067009026230908748535985706470255287607317647535776795729086405008962965426526702579183909988426862592555321201714747824159 + }, + "NTildei": 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + "H1i": 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + "H2i": 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + "Alpha": 3815675439589911552002845622292947844681859847115511404930358948899084510142665815459595685618140024266015393104605298516001093753385153546932140856786440275884680774724980085673325143653512118939465532585778894841233442889272045044479796803503481678081285179612676057394263830228511779515055834232281333877070381348431473806633365003336080365440404931656763791958308971783965745824988202818964383233390762252377984017232228754369680403140433958033440134651848302306218748422173668363136874370824277486728821045703726794093392782310651416622374103917820854718903900613604502089534103784948240699285283736646723490565, + "Beta": 1624531269475407576613503986713629574337979321512144193273732732096767618684913003296973536107242602321246211796470680211727467504471135429937388516267361671677023225274263707213941368477183914520269114334502483010424981568291750037033220155777755815349636112710987313753234463177067638897243356257746509322770310670035553883615837127905343404368107947577611378257351377391336693451242981743273947243730622860533281369535619396095651396584971668733093872753964199819027861642780282590846779033343514077275673444581807264120125431437641369966948761327894314394417860694112172787662605428269344853640180895791359747266, + "P": 79343325154133801936090133366397282895256770947414664757452313570706406951116231447718758976924985144888935335940475474065170164788188556994576951638696313218404251757450786481175768075207443667158287974219641514601656870269231597262788647857666517675597235103789085737237051589720000883165355859703178898229, + "Q": 81786146051094761182006513257679407901530775396001831849333779407475752229340665732790106390569585080673969491333451283150441744117529838634692351445621469777191575562875274056594815114918026905160861355995962427683973942576238235901602289006167509701502534563032018920141415898470147469788573030728131207839, + "Xi": 56820974658246231286256494492316883777337041418355640602622169910166529340786, + "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823755, + "Ks": [ + 45004175186998006667515890928553897561808875219138104924952711782631838823746, + 45004175186998006667515890928553897561808875219138104924952711782631838823747, + 45004175186998006667515890928553897561808875219138104924952711782631838823748, + 45004175186998006667515890928553897561808875219138104924952711782631838823749, + 45004175186998006667515890928553897561808875219138104924952711782631838823750, + 45004175186998006667515890928553897561808875219138104924952711782631838823751, + 45004175186998006667515890928553897561808875219138104924952711782631838823752, + 45004175186998006667515890928553897561808875219138104924952711782631838823753, + 45004175186998006667515890928553897561808875219138104924952711782631838823754, + 45004175186998006667515890928553897561808875219138104924952711782631838823755, + 45004175186998006667515890928553897561808875219138104924952711782631838823756, + 45004175186998006667515890928553897561808875219138104924952711782631838823757, + 45004175186998006667515890928553897561808875219138104924952711782631838823758, + 45004175186998006667515890928553897561808875219138104924952711782631838823759, + 45004175186998006667515890928553897561808875219138104924952711782631838823760, + 45004175186998006667515890928553897561808875219138104924952711782631838823761, + 45004175186998006667515890928553897561808875219138104924952711782631838823762, + 45004175186998006667515890928553897561808875219138104924952711782631838823763, + 45004175186998006667515890928553897561808875219138104924952711782631838823764, + 45004175186998006667515890928553897561808875219138104924952711782631838823765 + ], + "NTildej": [ + 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, + 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, + 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, + 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, + 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, + 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, + 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, + 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, + 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, + 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, + 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, + 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, + 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, + 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, + 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, + 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, + 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, + 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, + 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, + 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + ], + "H1j": [ + 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, + 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, + 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, + 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, + 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, + 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, + 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, + 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, + 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, + 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, + 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, + 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, + 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, + 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, + 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, + 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, + 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, + 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, + 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, + 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + ], + "H2j": [ + 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, + 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, + 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, + 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, + 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, + 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, + 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, + 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, + 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, + 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, + 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, + 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, + 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, + 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, + 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, + 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, + 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, + 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, + 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, + 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + ], + "BigXj": [ + { + "Curve": "secp256k1", + "Coords": [ + 32892358388980363843511088328393751861200026553341908347513355846387141097651, + 9062026883818819092570598928783205066941067616630699662056585925848970397983 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49192255895340409580550531978565053600468216931758925972696997777796326604456, + 70926108228042544432989498404567856750962361759428011271282692831621938611780 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 66324254561340798541799010446859259739563430263165578359406004137243733418117, + 92550790492483135261338789738687307349229293885990335532287509722819884521749 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15356004195372019964536248410328989887989097020787223082467301867522420819114, + 82599018041304957446401060464139564546328830308368830207240224469799975612431 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59147056392368754842714981935526830254390478942574619260579892291069958404553, + 35321584526426601085330858147355373037404072940101653121573883396843663663287 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 29033365650442197279098238871482058725096917883127790803357048432003144884042, + 64774956228858792074205343648095266960164698480249253353703074055944116395145 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 59151301901585266563375834611083434861671873668934066814360523804544098870899, + 101519884590808241414313150259912515236087952240819396480524434863366236191911 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 109366368776743582764172351548496538710172110881758604262172606227673107704570, + 104239766235315448452049946367185062072087316161023368541213974843825360747177 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 48778843104197228094136218122118310481733266255934656901689483625818772834299, + 84982608571074934039242812133912111015912999822286373266516437811241152009633 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 67589775823083465382138356447994790565216038509682412724089019821145263505767, + 103063952230514707761373249471040826060058460025067072429588638449977827519490 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 68845041778045492096890736779475743070010292998858495299573985942759835647304, + 113014300168559085069842443449630534643085559431302456389605429278228450978149 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 56548018513700325073083247397972993994733638119421035827510506067846017322758, + 78117679646569447463847359028653445644554181681344374195628788851064348014223 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 77452606484172272227443497912526494581742661263804754739390678002289264828561, + 97793781344609401126932413537780896813076994207531462240146900614512964442393 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 64392006852410960446700390977080107085469541317422616715719983613355763155647, + 57613553554600138317929933910789738761603563814972384895616861432938150628278 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15926148507450142587849254717298550537332381713191016304541642087004058110311, + 2427623919813011035153122264961299677917340372157964365888881294055636086464 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 49776323195553817886526132525653230831759315128685238071654234091529229019941, + 82975223384553565714317199893452623178562639395393874762566285599855744108351 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 22487829986292476577891825066818066026519857955901182888999958747892113100861, + 33644178736950428400146402492210937811059351974637449587849958898251677047023 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 87769522771428353039924494357689636995192170933753309281278974176069402953228, + 37499738057295909726991201000875029532448475215770442910038608395195867486675 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 15770576615316579813571948163061018040785388391388222996118223517297944113818, + 35578198932455476866036238917894261650158049918312216058727315154035271006569 + ] + }, + { + "Curve": "secp256k1", + "Coords": [ + 91204839685064114028569675021631261701143440471197536119431642532256527815849, + 111334624876039595708776202810278516376968912057739377460841351030523045265371 + ] + } + ], + "PaillierPKs": [ + { + "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 + }, + { + "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 + }, + { + "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 + }, + { + "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 + }, + { + "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 + }, + { + "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 + }, + { + "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 + }, + { + "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 + }, + { + "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 + }, + { + "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 + }, + { + "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 + }, + { + "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 + }, + { + "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 + }, + { + "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 + }, + { + "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 + }, + { + "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + }, + { + "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + }, + { + "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + }, + { + "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + }, + { + "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + } + ], + "ECDSAPub": { + "Curve": "secp256k1", + "Coords": [ + 96396203559338449140609949589039410031618358963960540497409629729029757387528, + 33564291617750663896182554414152761269923442265786811229324307186845193210173 + ] + } +} \ No newline at end of file From 1a14f3ac9ecbf6115e80d44c7fff16bcc3139250 Mon Sep 17 00:00:00 2001 From: ZhAnGeek <35120433+ZhAnGeek@users.noreply.github.com> Date: Wed, 23 Aug 2023 11:12:34 +0800 Subject: [PATCH 44/50] Ecdsa proof session byte (#256) * Add modProof in ECDSA-keygen * Reduce test param to reduce github workflow load * Add test fixtures * Fix EDDSA keygen example * Restore test fixtures * Compress modproof * use warning instead of fatal in logger to prevent panic * Add more checks in range proof * Regenerate preparams for older version * Reset test params and regenerate fixtures * Update ecdsa-resharing with Paillier key proofs * Add a switch to optional turn off Pai key proofs * Update README for caution of preparams updated * add: ecdsa proof session byte --------- Co-authored-by: ycen Co-authored-by: ZhAnGeek --- .github/workflows/gofmt.yml | 4 +- .github/workflows/test.yml | 30 ++- Makefile | 2 + README.md | 4 + common/hash.go | 41 +++ common/int.go | 7 + common/random.go | 31 ++- common/slice.go | 12 + crypto/ecpoint.go | 10 +- crypto/facproof/proof.go | 103 ++------ crypto/facproof/proof_test.go | 24 +- crypto/modproof/proof.go | 243 +++++++++++++++++ crypto/modproof/proof_test.go | 37 +++ crypto/mta/proofs.go | 36 ++- crypto/mta/range_proof.go | 6 + crypto/mta/range_proof_test.go | 70 ++--- crypto/mta/share_protocol.go | 12 +- crypto/mta/share_protocol_test.go | 12 +- crypto/schnorr/schnorr_proof.go | 16 +- crypto/schnorr/schnorr_proof_test.go | 26 +- ecdsa/keygen/ecdsa-keygen.pb.go | 23 +- ecdsa/keygen/local_party.go | 2 + ecdsa/keygen/local_party_test.go | 4 + ecdsa/keygen/messages.go | 10 + ecdsa/keygen/prepare.go | 2 + ecdsa/keygen/round_1.go | 6 + ecdsa/keygen/round_2.go | 31 ++- ecdsa/keygen/round_3.go | 26 +- ecdsa/keygen/rounds.go | 14 + ecdsa/keygen/save_data.go | 4 +- ecdsa/resharing/ecdsa-resharing.pb.go | 184 +++++++++---- ecdsa/resharing/local_party.go | 17 +- ecdsa/resharing/local_party_test.go | 7 +- ecdsa/resharing/messages.go | 73 ++++-- ecdsa/resharing/round_1_old_step_1.go | 9 +- ecdsa/resharing/round_2_new_step_1.go | 35 ++- ecdsa/resharing/round_4_new_step_2.go | 58 ++++- ecdsa/resharing/round_5_new_step_3.go | 24 ++ ecdsa/resharing/rounds.go | 24 ++ ecdsa/signing/local_party.go | 3 + ecdsa/signing/round_1.go | 6 + ecdsa/signing/round_2.go | 4 + ecdsa/signing/round_3.go | 3 + ecdsa/signing/round_4.go | 4 +- ecdsa/signing/round_5.go | 4 +- ecdsa/signing/round_6.go | 7 +- ecdsa/signing/round_7.go | 5 +- ecdsa/signing/rounds.go | 23 ++ eddsa/keygen/local_party.go | 3 + eddsa/keygen/local_party_test.go | 2 +- eddsa/keygen/round_1.go | 7 + eddsa/keygen/round_2.go | 4 +- eddsa/keygen/round_3.go | 4 +- eddsa/keygen/rounds.go | 14 + eddsa/resharing/local_party_test.go | 2 +- eddsa/signing/local_party.go | 3 + eddsa/signing/round_1.go | 7 + eddsa/signing/round_2.go | 4 +- eddsa/signing/round_3.go | 5 +- eddsa/signing/rounds.go | 20 ++ protob/ecdsa-keygen.proto | 1 + protob/ecdsa-resharing.proto | 12 +- test/_ecdsa_fixtures/keygen_data_0.json | 312 ++++------------------ test/_ecdsa_fixtures/keygen_data_1.json | 312 ++++------------------ test/_ecdsa_fixtures/keygen_data_10.json | 317 ----------------------- test/_ecdsa_fixtures/keygen_data_11.json | 317 ----------------------- test/_ecdsa_fixtures/keygen_data_12.json | 317 ----------------------- test/_ecdsa_fixtures/keygen_data_13.json | 317 ----------------------- test/_ecdsa_fixtures/keygen_data_14.json | 317 ----------------------- test/_ecdsa_fixtures/keygen_data_15.json | 317 ----------------------- test/_ecdsa_fixtures/keygen_data_16.json | 317 ----------------------- test/_ecdsa_fixtures/keygen_data_17.json | 317 ----------------------- test/_ecdsa_fixtures/keygen_data_18.json | 317 ----------------------- test/_ecdsa_fixtures/keygen_data_19.json | 317 ----------------------- test/_ecdsa_fixtures/keygen_data_2.json | 312 ++++------------------ test/_ecdsa_fixtures/keygen_data_3.json | 312 ++++------------------ test/_ecdsa_fixtures/keygen_data_4.json | 312 ++++------------------ test/_ecdsa_fixtures/keygen_data_5.json | 317 ----------------------- test/_ecdsa_fixtures/keygen_data_6.json | 317 ----------------------- test/_ecdsa_fixtures/keygen_data_7.json | 317 ----------------------- test/_ecdsa_fixtures/keygen_data_8.json | 317 ----------------------- test/_ecdsa_fixtures/keygen_data_9.json | 317 ----------------------- test/_eddsa_fixtures/keygen_data_0.json | 56 +++- test/_eddsa_fixtures/keygen_data_1.json | 56 +++- test/_eddsa_fixtures/keygen_data_10.json | 1 - test/_eddsa_fixtures/keygen_data_11.json | 1 - test/_eddsa_fixtures/keygen_data_12.json | 1 - test/_eddsa_fixtures/keygen_data_13.json | 1 - test/_eddsa_fixtures/keygen_data_14.json | 1 - test/_eddsa_fixtures/keygen_data_15.json | 1 - test/_eddsa_fixtures/keygen_data_16.json | 1 - test/_eddsa_fixtures/keygen_data_17.json | 1 - test/_eddsa_fixtures/keygen_data_18.json | 1 - test/_eddsa_fixtures/keygen_data_19.json | 1 - test/_eddsa_fixtures/keygen_data_2.json | 56 +++- test/_eddsa_fixtures/keygen_data_3.json | 56 +++- test/_eddsa_fixtures/keygen_data_4.json | 56 +++- test/_eddsa_fixtures/keygen_data_5.json | 1 - test/_eddsa_fixtures/keygen_data_6.json | 1 - test/_eddsa_fixtures/keygen_data_7.json | 1 - test/_eddsa_fixtures/keygen_data_8.json | 1 - test/_eddsa_fixtures/keygen_data_9.json | 1 - test/config.go | 2 +- tss/curve.go | 11 + tss/params.go | 21 ++ 105 files changed, 1685 insertions(+), 6385 deletions(-) create mode 100644 crypto/modproof/proof.go create mode 100644 crypto/modproof/proof_test.go delete mode 100644 test/_ecdsa_fixtures/keygen_data_10.json delete mode 100644 test/_ecdsa_fixtures/keygen_data_11.json delete mode 100644 test/_ecdsa_fixtures/keygen_data_12.json delete mode 100644 test/_ecdsa_fixtures/keygen_data_13.json delete mode 100644 test/_ecdsa_fixtures/keygen_data_14.json delete mode 100644 test/_ecdsa_fixtures/keygen_data_15.json delete mode 100644 test/_ecdsa_fixtures/keygen_data_16.json delete mode 100644 test/_ecdsa_fixtures/keygen_data_17.json delete mode 100644 test/_ecdsa_fixtures/keygen_data_18.json delete mode 100644 test/_ecdsa_fixtures/keygen_data_19.json delete mode 100644 test/_ecdsa_fixtures/keygen_data_5.json delete mode 100644 test/_ecdsa_fixtures/keygen_data_6.json delete mode 100644 test/_ecdsa_fixtures/keygen_data_7.json delete mode 100644 test/_ecdsa_fixtures/keygen_data_8.json delete mode 100644 test/_ecdsa_fixtures/keygen_data_9.json delete mode 100644 test/_eddsa_fixtures/keygen_data_10.json delete mode 100644 test/_eddsa_fixtures/keygen_data_11.json delete mode 100644 test/_eddsa_fixtures/keygen_data_12.json delete mode 100644 test/_eddsa_fixtures/keygen_data_13.json delete mode 100644 test/_eddsa_fixtures/keygen_data_14.json delete mode 100644 test/_eddsa_fixtures/keygen_data_15.json delete mode 100644 test/_eddsa_fixtures/keygen_data_16.json delete mode 100644 test/_eddsa_fixtures/keygen_data_17.json delete mode 100644 test/_eddsa_fixtures/keygen_data_18.json delete mode 100644 test/_eddsa_fixtures/keygen_data_19.json delete mode 100644 test/_eddsa_fixtures/keygen_data_5.json delete mode 100644 test/_eddsa_fixtures/keygen_data_6.json delete mode 100644 test/_eddsa_fixtures/keygen_data_7.json delete mode 100644 test/_eddsa_fixtures/keygen_data_8.json delete mode 100644 test/_eddsa_fixtures/keygen_data_9.json diff --git a/.github/workflows/gofmt.yml b/.github/workflows/gofmt.yml index a6467289..a60ba936 100644 --- a/.github/workflows/gofmt.yml +++ b/.github/workflows/gofmt.yml @@ -6,6 +6,6 @@ jobs: runs-on: ubuntu-latest steps: - name: check out - uses: actions/checkout@v2 + uses: actions/checkout@v3 - name: go fmt project - uses: Jerome1337/gofmt-action@v1.0.2 \ No newline at end of file + uses: Jerome1337/gofmt-action@v1.0.4 \ No newline at end of file diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 380e2e85..8732edb7 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -2,11 +2,11 @@ name: Go Test on: push: branches: - - master - - release/* + - master + - release/* pull_request: branches: - - master + - master jobs: build: @@ -14,18 +14,20 @@ jobs: runs-on: macOS-latest steps: - - name: Set up Go 1.13 - uses: actions/setup-go@v1 - with: - go-version: 1.13 - id: go + - name: Set up Go 1.20 + uses: actions/setup-go@v3 + with: + go-version: 1.20.3 + id: go - - name: Check out code into the Go module directory - uses: actions/checkout@v1 + - name: Check out code into the Go module directory + uses: actions/checkout@v3 - - name: Get dependencies - run: go get -v -t -d ./... + - name: Clean dependencies + run: go clean --modcache - - name: Run Tests - run: make test_unit_race + - name: Get dependencies + run: go mod tidy + - name: Run Tests + run: make test_unit_race diff --git a/Makefile b/Makefile index 164a0a31..e385c479 100644 --- a/Makefile +++ b/Makefile @@ -22,11 +22,13 @@ build: protob test_unit: @echo "--> Running Unit Tests" @echo "!!! WARNING: This will take a long time :)" + go clean -testcache go test -timeout 60m $(PACKAGES) test_unit_race: @echo "--> Running Unit Tests (with Race Detection)" @echo "!!! WARNING: This will take a long time :)" + go clean -testcache go test -timeout 60m -race $(PACKAGES) test: diff --git a/README.md b/README.md index 6342c2f8..c4411d96 100644 --- a/README.md +++ b/README.md @@ -136,6 +136,10 @@ In a typical use case, it is expected that a transport implementation will consu This way there is no need to deal with Marshal/Unmarshalling Protocol Buffers to implement a transport. +## Changes of Preparams of ECDSA in v2.0 + +Two fields PaillierSK.P and PaillierSK.Q is added in version 2.0. They are used to generate Paillier key proofs. Key valuts generated from versions before 2.0 need to regenerate(resharing) the key valuts to update the praparams with the necessary fileds filled. + ## How to use this securely ⚠️ This section is important. Be sure to read it! diff --git a/common/hash.go b/common/hash.go index e26b2fc6..304af71b 100644 --- a/common/hash.go +++ b/common/hash.go @@ -93,6 +93,47 @@ func SHA512_256i(in ...*big.Int) *big.Int { return new(big.Int).SetBytes(state.Sum(nil)) } +// SHA512_256i_TAGGED tagged version of SHA512_256i +func SHA512_256i_TAGGED(tag []byte, in ...*big.Int) *big.Int { + tagBz := SHA512_256(tag) + var data []byte + state := crypto.SHA512_256.New() + state.Write(tagBz) + state.Write(tagBz) + inLen := len(in) + if inLen == 0 { + return nil + } + bzSize := 0 + // prevent hash collisions with this prefix containing the block count + inLenBz := make([]byte, 64/8) + // converting between int and uint64 doesn't change the sign bit, but it may be interpreted as a larger value. + // this prefix is never read/interpreted, so that doesn't matter. + binary.LittleEndian.PutUint64(inLenBz, uint64(inLen)) + ptrs := make([][]byte, inLen) + for i, n := range in { + if n == nil { + ptrs[i] = zero.Bytes() + } else { + ptrs[i] = n.Bytes() + } + bzSize += len(ptrs[i]) + } + data = make([]byte, 0, len(inLenBz)+bzSize+inLen) + data = append(data, inLenBz...) + for i := range in { + data = append(data, ptrs[i]...) + data = append(data, hashInputDelimiter) // safety delimiter + } + // n < len(data) or an error will never happen. + // see: https://golang.org/pkg/hash/#Hash and https://github.com/golang/go/wiki/Hashing#the-hashhash-interface + if _, err := state.Write(data); err != nil { + Logger.Error(err) + return nil + } + return new(big.Int).SetBytes(state.Sum(nil)) +} + func SHA512_256iOne(in *big.Int) *big.Int { var data []byte state := crypto.SHA512_256.New() diff --git a/common/int.go b/common/int.go index 379da101..54c798cd 100644 --- a/common/int.go +++ b/common/int.go @@ -62,3 +62,10 @@ func (mi *modInt) i() *big.Int { func IsInInterval(b *big.Int, bound *big.Int) bool { return b.Cmp(bound) == -1 && b.Cmp(zero) >= 0 } + +func AppendBigIntToBytesSlice(commonBytes []byte, appended *big.Int) []byte { + resultBytes := make([]byte, len(commonBytes), len(commonBytes)+len(appended.Bytes())) + copy(resultBytes, commonBytes) + resultBytes = append(resultBytes, appended.Bytes()...) + return resultBytes +} diff --git a/common/random.go b/common/random.go index 24a8d7c7..333cf549 100644 --- a/common/random.go +++ b/common/random.go @@ -92,11 +92,38 @@ func IsNumberInMultiplicativeGroup(n, v *big.Int) bool { gcd.GCD(nil, nil, v, n).Cmp(one) == 0 } -// Return a random generator of RQn with high probability. -// THIS METHOD ONLY WORKS IF N IS THE PRODUCT OF TWO SAFE PRIMES! +// Return a random generator of RQn with high probability. +// THIS METHOD ONLY WORKS IF N IS THE PRODUCT OF TWO SAFE PRIMES! +// // https://github.com/didiercrunch/paillier/blob/d03e8850a8e4c53d04e8016a2ce8762af3278b71/utils.go#L39 func GetRandomGeneratorOfTheQuadraticResidue(n *big.Int) *big.Int { f := GetRandomPositiveRelativelyPrimeInt(n) fSq := new(big.Int).Mul(f, f) return fSq.Mod(fSq, n) } + +// GetRandomQuadraticNonResidue returns a quadratic non residue of odd n. +func GetRandomQuadraticNonResidue(n *big.Int) *big.Int { + for { + w := GetRandomPositiveInt(n) + if big.Jacobi(w, n) == -1 { + return w + } + } +} + +// GetRandomBytes returns random bytes of length. +func GetRandomBytes(length int) ([]byte, error) { + // Per [BIP32], the seed must be in range [MinSeedBytes, MaxSeedBytes]. + if length <= 0 { + return nil, errors.New("invalid length") + } + + buf := make([]byte, length) + _, err := rand.Read(buf) + if err != nil { + return nil, err + } + + return buf, nil +} diff --git a/common/slice.go b/common/slice.go index 28aafd31..d40a9480 100644 --- a/common/slice.go +++ b/common/slice.go @@ -50,3 +50,15 @@ func NonEmptyMultiBytes(bzs [][]byte, expectLen ...int) bool { } return true } + +// PadToLengthBytesInPlace pad {0, ...} to the front of src if len(src) < length +// output length is equal to the parameter length +func PadToLengthBytesInPlace(src []byte, length int) []byte { + oriLen := len(src) + if oriLen < length { + for i := 0; i < length-oriLen; i++ { + src = append([]byte{0}, src...) + } + } + return src +} diff --git a/crypto/ecpoint.go b/crypto/ecpoint.go index 879dbf48..7c09d926 100644 --- a/crypto/ecpoint.go +++ b/crypto/ecpoint.go @@ -61,7 +61,10 @@ func (p *ECPoint) Add(p1 *ECPoint) (*ECPoint, error) { func (p *ECPoint) ScalarMult(k *big.Int) *ECPoint { x, y := p.curve.ScalarMult(p.X(), p.Y(), k.Bytes()) - newP, _ := NewECPoint(p.curve, x, y) // it must be on the curve, no need to check. + newP, err := NewECPoint(p.curve, x, y) // it must be on the curve, no need to check. + if err != nil { + panic(fmt.Errorf("scalar mult to an ecpoint %s", err.Error())) + } return newP } @@ -103,7 +106,10 @@ func (p *ECPoint) EightInvEight() *ECPoint { func ScalarBaseMult(curve elliptic.Curve, k *big.Int) *ECPoint { x, y := curve.ScalarBaseMult(k.Bytes()) - p, _ := NewECPoint(curve, x, y) // it must be on the curve, no need to check. + p, err := NewECPoint(curve, x, y) // it must be on the curve, no need to check. + if err != nil { + panic(fmt.Errorf("scalar mult to an ecpoint %s", err.Error())) + } return p } diff --git a/crypto/facproof/proof.go b/crypto/facproof/proof.go index 69720bed..6458ff93 100644 --- a/crypto/facproof/proof.go +++ b/crypto/facproof/proof.go @@ -10,8 +10,9 @@ import ( "crypto/elliptic" "errors" "fmt" - "github.com/bnb-chain/tss-lib/common" "math/big" + + "github.com/bnb-chain/tss-lib/common" ) const ( @@ -30,31 +31,31 @@ var ( one = big.NewInt(1) ) -// NewProof implements proofFac -func NewProof(ec elliptic.Curve, N0, NCap, s, t, N0p, N0q *big.Int) (*ProofFac, error) { +// NewProof implements prooffac +func NewProof(Session []byte, ec elliptic.Curve, N0, NCap, s, t, N0p, N0q *big.Int) (*ProofFac, error) { if ec == nil || N0 == nil || NCap == nil || s == nil || t == nil || N0p == nil || N0q == nil { return nil, errors.New("ProveFac constructor received nil value(s)") } q := ec.Params().N + q3 := new(big.Int).Mul(q, q) + q3 = new(big.Int).Mul(q, q3) + qNCap := new(big.Int).Mul(q, NCap) + qN0NCap := new(big.Int).Mul(qNCap, N0) + q3NCap := new(big.Int).Mul(q3, NCap) + q3N0NCap := new(big.Int).Mul(q3NCap, N0) sqrtN0 := new(big.Int).Sqrt(N0) - - leSqrtN0 := new(big.Int).Mul(rangeParameter, q) - leSqrtN0 = new(big.Int).Mul(leSqrtN0, sqrtN0) - lNCap := new(big.Int).Mul(rangeParameter, NCap) - lN0NCap := new(big.Int).Mul(lNCap, N0) - leN0NCap := new(big.Int).Mul(lN0NCap, q) - leNCap := new(big.Int).Mul(lNCap, q) + q3SqrtN0 := new(big.Int).Mul(q3, sqrtN0) // Fig 28.1 sample - alpha := common.GetRandomPositiveInt(leSqrtN0) - beta := common.GetRandomPositiveInt(leSqrtN0) - mu := common.GetRandomPositiveInt(lNCap) - nu := common.GetRandomPositiveInt(lNCap) - sigma := common.GetRandomPositiveInt(lN0NCap) - r := common.GetRandomPositiveRelativelyPrimeInt(leN0NCap) - x := common.GetRandomPositiveInt(leNCap) - y := common.GetRandomPositiveInt(leNCap) + alpha := common.GetRandomPositiveInt(q3SqrtN0) + beta := common.GetRandomPositiveInt(q3SqrtN0) + mu := common.GetRandomPositiveInt(qNCap) + nu := common.GetRandomPositiveInt(qNCap) + sigma := common.GetRandomPositiveInt(qN0NCap) + r := common.GetRandomPositiveRelativelyPrimeInt(q3N0NCap) + x := common.GetRandomPositiveInt(q3NCap) + y := common.GetRandomPositiveInt(q3NCap) // Fig 28.1 compute modNCap := common.ModInt(NCap) @@ -76,7 +77,7 @@ func NewProof(ec elliptic.Curve, N0, NCap, s, t, N0p, N0q *big.Int) (*ProofFac, // Fig 28.2 e var e *big.Int { - eHash := common.SHA512_256i(N0, NCap, s, t, P, Q, A, B, T, sigma) + eHash := common.SHA512_256i_TAGGED(Session, N0, NCap, s, t, P, Q, A, B, T, sigma) e = common.RejectionSample(q, eHash) } @@ -120,82 +121,32 @@ func NewProofFromBytes(bzs [][]byte) (*ProofFac, error) { }, nil } -func (pf *ProofFac) Verify(ec elliptic.Curve, N0, NCap, s, t *big.Int) bool { +func (pf *ProofFac) Verify(Session []byte, ec elliptic.Curve, N0, NCap, s, t *big.Int) bool { if pf == nil || !pf.ValidateBasic() || ec == nil || N0 == nil || NCap == nil || s == nil || t == nil { return false } if N0.Sign() != 1 { return false } - if NCap.Sign() != 1 { - return false - } q := ec.Params().N + q3 := new(big.Int).Mul(q, q) + q3 = new(big.Int).Mul(q, q3) sqrtN0 := new(big.Int).Sqrt(N0) - - leSqrtN0 := new(big.Int).Mul(rangeParameter, q) - leSqrtN0 = new(big.Int).Mul(leSqrtN0, sqrtN0) - lNCap := new(big.Int).Mul(rangeParameter, NCap) - lN0NCap := new(big.Int).Mul(lNCap, N0) - leN0NCap2 := new(big.Int).Lsh(new(big.Int).Mul(lN0NCap, q), 1) - leNCap2 := new(big.Int).Lsh(new(big.Int).Mul(lNCap, q), 1) - - if !common.IsInInterval(pf.P, NCap) { - return false - } - if !common.IsInInterval(pf.Q, NCap) { - return false - } - if !common.IsInInterval(pf.A, NCap) { - return false - } - if !common.IsInInterval(pf.B, NCap) { - return false - } - if !common.IsInInterval(pf.T, NCap) { - return false - } - if !common.IsInInterval(pf.Sigma, lN0NCap) { - return false - } - if new(big.Int).GCD(nil, nil, pf.P, NCap).Cmp(one) != 0 { - return false - } - if new(big.Int).GCD(nil, nil, pf.Q, NCap).Cmp(one) != 0 { - return false - } - if new(big.Int).GCD(nil, nil, pf.A, NCap).Cmp(one) != 0 { - return false - } - if new(big.Int).GCD(nil, nil, pf.B, NCap).Cmp(one) != 0 { - return false - } - if new(big.Int).GCD(nil, nil, pf.T, NCap).Cmp(one) != 0 { - return false - } - if !common.IsInInterval(pf.W1, leNCap2) { - return false - } - if !common.IsInInterval(pf.W2, leNCap2) { - return false - } - if !common.IsInInterval(pf.V, leN0NCap2) { - return false - } + q3SqrtN0 := new(big.Int).Mul(q3, sqrtN0) // Fig 28. Range Check - if !common.IsInInterval(pf.Z1, leSqrtN0) { + if !common.IsInInterval(pf.Z1, q3SqrtN0) { return false } - if !common.IsInInterval(pf.Z2, leSqrtN0) { + if !common.IsInInterval(pf.Z2, q3SqrtN0) { return false } var e *big.Int { - eHash := common.SHA512_256i(N0, NCap, s, t, pf.P, pf.Q, pf.A, pf.B, pf.T, pf.Sigma) + eHash := common.SHA512_256i_TAGGED(Session, N0, NCap, s, t, pf.P, pf.Q, pf.A, pf.B, pf.T, pf.Sigma) e = common.RejectionSample(q, eHash) } diff --git a/crypto/facproof/proof_test.go b/crypto/facproof/proof_test.go index 993abb03..ef73ea74 100644 --- a/crypto/facproof/proof_test.go +++ b/crypto/facproof/proof_test.go @@ -23,6 +23,10 @@ const ( testSafePrimeBits = 1024 ) +var ( + Session = []byte("session") +) + func TestFac(test *testing.T) { ec := tss.EC() @@ -33,31 +37,19 @@ func TestFac(test *testing.T) { primes := [2]*big.Int{common.GetRandomPrimeInt(testSafePrimeBits), common.GetRandomPrimeInt(testSafePrimeBits)} NCap, s, t, err := crypto.GenerateNTildei(primes) assert.NoError(test, err) - proof, err := NewProof(ec, N0, NCap, s, t, N0p, N0q) + proof, err := NewProof(Session, ec, N0, NCap, s, t, N0p, N0q) assert.NoError(test, err) - ok := proof.Verify(ec, N0, NCap, s, t) + ok := proof.Verify(Session, ec, N0, NCap, s, t) assert.True(test, ok, "proof must verify") N0p = common.GetRandomPrimeInt(1024) N0q = common.GetRandomPrimeInt(1024) N0 = new(big.Int).Mul(N0p, N0q) - proof, err = NewProof(ec, N0, NCap, s, t, N0p, N0q) + proof, err = NewProof(Session, ec, N0, NCap, s, t, N0p, N0q) assert.NoError(test, err) - ok = proof.Verify(ec, N0, NCap, s, t) + ok = proof.Verify(Session, ec, N0, NCap, s, t) assert.True(test, ok, "proof must verify") - - // factor should have bits [1024-16, 1024+16] - smallFactor := 900 - N0p = common.GetRandomPrimeInt(smallFactor) - N0q = common.GetRandomPrimeInt(2048 - smallFactor) - N0 = new(big.Int).Mul(N0p, N0q) - - proof, err = NewProof(ec, N0, NCap, s, t, N0p, N0q) - assert.NoError(test, err) - - ok = proof.Verify(ec, N0, NCap, s, t) - assert.False(test, ok, "proof must not verify") } diff --git a/crypto/modproof/proof.go b/crypto/modproof/proof.go new file mode 100644 index 00000000..bcbb9ee0 --- /dev/null +++ b/crypto/modproof/proof.go @@ -0,0 +1,243 @@ +// Copyright © 2019-2023 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + +package modproof + +import ( + "fmt" + "math/big" + + "github.com/bnb-chain/tss-lib/common" +) + +const ( + Iterations = 80 + ProofModBytesParts = Iterations*2 + 3 +) + +var ( + one = big.NewInt(1) +) + +type ( + ProofMod struct { + W *big.Int + X [Iterations]*big.Int + A *big.Int + B *big.Int + Z [Iterations]*big.Int + } +) + +// isQuadraticResidue checks Euler criterion +func isQuadraticResidue(X, N *big.Int) bool { + return big.Jacobi(X, N) == 1 +} + +func NewProof(Session []byte, N, P, Q *big.Int) (*ProofMod, error) { + Phi := new(big.Int).Mul(new(big.Int).Sub(P, one), new(big.Int).Sub(Q, one)) + // Fig 16.1 + W := common.GetRandomQuadraticNonResidue(N) + + // Fig 16.2 + Y := [Iterations]*big.Int{} + for i := range Y { + ei := common.SHA512_256i_TAGGED(Session, append([]*big.Int{W, N}, Y[:i]...)...) + Y[i] = common.RejectionSample(N, ei) + } + + // Fig 16.3 + modN, modPhi := common.ModInt(N), common.ModInt(Phi) + invN := new(big.Int).ModInverse(N, Phi) + X := [Iterations]*big.Int{} + // Fix bitLen of A and B + A := new(big.Int).Lsh(one, Iterations) + B := new(big.Int).Lsh(one, Iterations) + Z := [Iterations]*big.Int{} + + // for fourth-root + expo := new(big.Int).Add(Phi, big.NewInt(4)) + expo = new(big.Int).Rsh(expo, 3) + expo = modPhi.Mul(expo, expo) + + for i := range Y { + for j := 0; j < 4; j++ { + a, b := j&1, j&2>>1 + Yi := new(big.Int).SetBytes(Y[i].Bytes()) + if a > 0 { + Yi = modN.Mul(big.NewInt(-1), Yi) + } + if b > 0 { + Yi = modN.Mul(W, Yi) + } + if isQuadraticResidue(Yi, P) && isQuadraticResidue(Yi, Q) { + Xi := modN.Exp(Yi, expo) + Zi := modN.Exp(Y[i], invN) + X[i], Z[i] = Xi, Zi + A.SetBit(A, i, uint(a)) + B.SetBit(B, i, uint(b)) + break + } + } + } + + pf := &ProofMod{W: W, X: X, A: A, B: B, Z: Z} + return pf, nil +} + +func NewProofFromBytes(bzs [][]byte) (*ProofMod, error) { + if !common.NonEmptyMultiBytes(bzs, ProofModBytesParts) { + return nil, fmt.Errorf("expected %d byte parts to construct ProofMod", ProofModBytesParts) + } + bis := make([]*big.Int, len(bzs)) + for i := range bis { + bis[i] = new(big.Int).SetBytes(bzs[i]) + } + + X := [Iterations]*big.Int{} + copy(X[:], bis[1:(Iterations+1)]) + + Z := [Iterations]*big.Int{} + copy(Z[:], bis[(Iterations+3):]) + + return &ProofMod{ + W: bis[0], + X: X, + A: bis[Iterations+1], + B: bis[Iterations+2], + Z: Z, + }, nil +} + +func (pf *ProofMod) Verify(Session []byte, N *big.Int) bool { + if pf == nil || !pf.ValidateBasic() { + return false + } + // TODO: add basic properties checker + if isQuadraticResidue(pf.W, N) { + return false + } + if pf.W.Sign() != 1 || pf.W.Cmp(N) != -1 { + return false + } + for i := range pf.Z { + if pf.Z[i].Sign() != 1 || pf.Z[i].Cmp(N) != -1 { + return false + } + } + for i := range pf.X { + if pf.X[i].Sign() != 1 || pf.X[i].Cmp(N) != -1 { + return false + } + } + if pf.A.BitLen() != Iterations+1 { + return false + } + if pf.B.BitLen() != Iterations+1 { + return false + } + + modN := common.ModInt(N) + Y := [Iterations]*big.Int{} + for i := range Y { + ei := common.SHA512_256i_TAGGED(Session, append([]*big.Int{pf.W, N}, Y[:i]...)...) + Y[i] = common.RejectionSample(N, ei) + } + + // Fig 16. Verification + { + if N.Bit(0) == 0 || N.ProbablyPrime(30) { + return false + } + } + + chs := make(chan bool, Iterations*2) + for i := 0; i < Iterations; i++ { + go func(i int) { + left := modN.Exp(pf.Z[i], N) + if left.Cmp(Y[i]) != 0 { + chs <- false + return + } + chs <- true + }(i) + + go func(i int) { + a := pf.A.Bit(i) + b := pf.B.Bit(i) + if a != 0 && a != 1 { + chs <- false + return + } + if b != 0 && b != 1 { + chs <- false + return + } + left := modN.Exp(pf.X[i], big.NewInt(4)) + right := Y[i] + if a > 0 { + right = modN.Mul(big.NewInt(-1), right) + } + if b > 0 { + right = modN.Mul(pf.W, right) + } + if left.Cmp(right) != 0 { + chs <- false + return + } + chs <- true + }(i) + } + + for i := 0; i < Iterations*2; i++ { + if !<-chs { + return false + } + } + + return true +} + +func (pf *ProofMod) ValidateBasic() bool { + if pf.W == nil { + return false + } + for i := range pf.X { + if pf.X[i] == nil { + return false + } + } + if pf.A == nil { + return false + } + if pf.B == nil { + return false + } + for i := range pf.Z { + if pf.Z[i] == nil { + return false + } + } + return true +} + +func (pf *ProofMod) Bytes() [ProofModBytesParts][]byte { + bzs := [ProofModBytesParts][]byte{} + bzs[0] = pf.W.Bytes() + for i := range pf.X { + if pf.X[i] != nil { + bzs[1+i] = pf.X[i].Bytes() + } + } + bzs[Iterations+1] = pf.A.Bytes() + bzs[Iterations+2] = pf.B.Bytes() + for i := range pf.Z { + if pf.Z[i] != nil { + bzs[Iterations+3+i] = pf.Z[i].Bytes() + } + } + return bzs +} diff --git a/crypto/modproof/proof_test.go b/crypto/modproof/proof_test.go new file mode 100644 index 00000000..d5380563 --- /dev/null +++ b/crypto/modproof/proof_test.go @@ -0,0 +1,37 @@ +// Copyright © 2019-2023 Binance +// +// This file is part of Binance. The full Binance copyright notice, including +// terms governing use, modification, and redistribution, is contained in the +// file LICENSE at the root of the source code distribution tree. + +package modproof_test + +import ( + "testing" + "time" + + . "github.com/bnb-chain/tss-lib/crypto/modproof" + "github.com/bnb-chain/tss-lib/ecdsa/keygen" + "github.com/stretchr/testify/assert" +) + +var ( + Session = []byte("session") +) + +func TestMod(test *testing.T) { + preParams, err := keygen.GeneratePreParams(time.Minute*10, 8) + assert.NoError(test, err) + + P, Q, N := preParams.PaillierSK.P, preParams.PaillierSK.Q, preParams.PaillierSK.N + + proof, err := NewProof(Session, N, P, Q) + assert.NoError(test, err) + + proofBzs := proof.Bytes() + proof, err = NewProofFromBytes(proofBzs[:]) + assert.NoError(test, err) + + ok := proof.Verify(Session, N) + assert.True(test, ok, "proof must verify") +} diff --git a/crypto/mta/proofs.go b/crypto/mta/proofs.go index 822085d2..55142c7a 100644 --- a/crypto/mta/proofs.go +++ b/crypto/mta/proofs.go @@ -15,6 +15,7 @@ import ( "github.com/bnb-chain/tss-lib/common" "github.com/bnb-chain/tss-lib/crypto" "github.com/bnb-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/tss" ) const ( @@ -35,7 +36,7 @@ type ( // ProveBobWC implements Bob's proof both with or without check "ProveMtawc_Bob" and "ProveMta_Bob" used in the MtA protocol from GG18Spec (9) Figs. 10 & 11. // an absent `X` generates the proof without the X consistency check X = g^x -func ProveBobWC(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c2, x, y, r *big.Int, X *crypto.ECPoint) (*ProofBobWC, error) { +func ProveBobWC(Session []byte, ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c2, x, y, r *big.Int, X *crypto.ECPoint) (*ProofBobWC, error) { if pk == nil || NTilde == nil || h1 == nil || h2 == nil || c1 == nil || c2 == nil || x == nil || y == nil || r == nil { return nil, errors.New("ProveBob() received a nil argument") } @@ -102,9 +103,9 @@ func ProveBobWC(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c var eHash *big.Int // X is nil if called by ProveBob (Bob's proof "without check") if X == nil { - eHash = common.SHA512_256i(append(pk.AsInts(), c1, c2, z, zPrm, t, v, w)...) + eHash = common.SHA512_256i_TAGGED(Session, append(pk.AsInts(), c1, c2, z, zPrm, t, v, w)...) } else { - eHash = common.SHA512_256i(append(pk.AsInts(), X.X(), X.Y(), c1, c2, u.X(), u.Y(), z, zPrm, t, v, w)...) + eHash = common.SHA512_256i_TAGGED(Session, append(pk.AsInts(), X.X(), X.Y(), c1, c2, u.X(), u.Y(), z, zPrm, t, v, w)...) } e = common.RejectionSample(q, eHash) } @@ -138,10 +139,10 @@ func ProveBobWC(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c } // ProveBob implements Bob's proof "ProveMta_Bob" used in the MtA protocol from GG18Spec (9) Fig. 11. -func ProveBob(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c2, x, y, r *big.Int) (*ProofBob, error) { +func ProveBob(Session []byte, ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c2, x, y, r *big.Int) (*ProofBob, error) { // the Bob proof ("with check") contains the ProofBob "without check"; this method extracts and returns it // X is supplied as nil to exclude it from the proof hash - pf, err := ProveBobWC(ec, pk, NTilde, h1, h2, c1, c2, x, y, r, nil) + pf, err := ProveBobWC(Session, ec, pk, NTilde, h1, h2, c1, c2, x, y, r, nil) if err != nil { return nil, err } @@ -188,7 +189,7 @@ func ProofBobFromBytes(bzs [][]byte) (*ProofBob, error) { // ProveBobWC.Verify implements verification of Bob's proof with check "VerifyMtawc_Bob" used in the MtA protocol from GG18Spec (9) Fig. 10. // an absent `X` verifies a proof generated without the X consistency check X = g^x -func (pf *ProofBobWC) Verify(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c2 *big.Int, X *crypto.ECPoint) bool { +func (pf *ProofBobWC) Verify(Session []byte, ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c2 *big.Int, X *crypto.ECPoint) bool { if pk == nil || NTilde == nil || h1 == nil || h2 == nil || c1 == nil || c2 == nil { return false } @@ -246,6 +247,18 @@ func (pf *ProofBobWC) Verify(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, if gcd.GCD(nil, nil, pf.V, pk.N).Cmp(one) != 0 { return false } + if pf.S1.Cmp(q) == -1 { + return false + } + if pf.S2.Cmp(q) == -1 { + return false + } + if pf.T1.Cmp(q) == -1 { + return false + } + if pf.T2.Cmp(q) == -1 { + return false + } // 3. if pf.S1.Cmp(q3) > 0 { @@ -261,9 +274,12 @@ func (pf *ProofBobWC) Verify(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, var eHash *big.Int // X is nil if called on a ProveBob (Bob's proof "without check") if X == nil { - eHash = common.SHA512_256i(append(pk.AsInts(), c1, c2, pf.Z, pf.ZPrm, pf.T, pf.V, pf.W)...) + eHash = common.SHA512_256i_TAGGED(Session, append(pk.AsInts(), c1, c2, pf.Z, pf.ZPrm, pf.T, pf.V, pf.W)...) } else { - eHash = common.SHA512_256i(append(pk.AsInts(), X.X(), X.Y(), c1, c2, pf.U.X(), pf.U.Y(), pf.Z, pf.ZPrm, pf.T, pf.V, pf.W)...) + if !tss.SameCurve(ec, X.Curve()) { + return false + } + eHash = common.SHA512_256i_TAGGED(Session, append(pk.AsInts(), X.X(), X.Y(), c1, c2, pf.U.X(), pf.U.Y(), pf.Z, pf.ZPrm, pf.T, pf.V, pf.W)...) } e = common.RejectionSample(q, eHash) } @@ -324,12 +340,12 @@ func (pf *ProofBobWC) Verify(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, } // ProveBob.Verify implements verification of Bob's proof without check "VerifyMta_Bob" used in the MtA protocol from GG18Spec (9) Fig. 11. -func (pf *ProofBob) Verify(ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c2 *big.Int) bool { +func (pf *ProofBob) Verify(Session []byte, ec elliptic.Curve, pk *paillier.PublicKey, NTilde, h1, h2, c1, c2 *big.Int) bool { if pf == nil { return false } pfWC := &ProofBobWC{ProofBob: pf, U: nil} - return pfWC.Verify(ec, pk, NTilde, h1, h2, c1, c2, nil) + return pfWC.Verify(Session, ec, pk, NTilde, h1, h2, c1, c2, nil) } func (pf *ProofBob) ValidateBasic() bool { diff --git a/crypto/mta/range_proof.go b/crypto/mta/range_proof.go index ba5cfebb..37ed1a4d 100644 --- a/crypto/mta/range_proof.go +++ b/crypto/mta/range_proof.go @@ -134,6 +134,12 @@ func (pf *RangeProofAlice) Verify(ec elliptic.Curve, pk *paillier.PublicKey, NTi if new(big.Int).GCD(nil, nil, pf.W, NTilde).Cmp(one) != 0 { return false } + if pf.S1.Cmp(q) == -1 { + return false + } + if pf.S2.Cmp(q) == -1 { + return false + } // 3. if pf.S1.Cmp(q3) == 1 { diff --git a/crypto/mta/range_proof_test.go b/crypto/mta/range_proof_test.go index c6bf7b8e..a20dd701 100644 --- a/crypto/mta/range_proof_test.go +++ b/crypto/mta/range_proof_test.go @@ -55,63 +55,69 @@ func TestProveRangeAliceBypassed(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute) defer cancel() - sk_0, pk_0, err := paillier.GenerateKeyPair(ctx, testPaillierKeyLength) + sk0, pk0, err := paillier.GenerateKeyPair(ctx, testPaillierKeyLength) assert.NoError(t, err) - m_0 := common.GetRandomPositiveInt(q) - c_0, r_0, err := sk_0.EncryptAndReturnRandomness(m_0) + m0 := common.GetRandomPositiveInt(q) + c0, r0, err := sk0.EncryptAndReturnRandomness(m0) assert.NoError(t, err) - primes_0 := [2]*big.Int{common.GetRandomPrimeInt(testSafePrimeBits), common.GetRandomPrimeInt(testSafePrimeBits)} - NTildei_0, h1i_0, h2i_0, err := crypto.GenerateNTildei(primes_0) + primes0 := [2]*big.Int{common.GetRandomPrimeInt(testSafePrimeBits), common.GetRandomPrimeInt(testSafePrimeBits)} + Ntildei0, h1i0, h2i0, err := crypto.GenerateNTildei(primes0) assert.NoError(t, err) - proof_0, err := ProveRangeAlice(tss.EC(), pk_0, c_0, NTildei_0, h1i_0, h2i_0, m_0, r_0) + proof0, err := ProveRangeAlice(tss.EC(), pk0, c0, Ntildei0, h1i0, h2i0, m0, r0) assert.NoError(t, err) - ok_0 := proof_0.Verify(tss.EC(), pk_0, NTildei_0, h1i_0, h2i_0, c_0) - assert.True(t, ok_0, "proof must verify") + ok0 := proof0.Verify(tss.EC(), pk0, Ntildei0, h1i0, h2i0, c0) + assert.True(t, ok0, "proof must verify") //proof 2 - sk_1, pk_1, err := paillier.GenerateKeyPair(ctx, testPaillierKeyLength) + sk1, pk1, err := paillier.GenerateKeyPair(ctx, testPaillierKeyLength) assert.NoError(t, err) - m_1 := common.GetRandomPositiveInt(q) - c_1, r_1, err := sk_1.EncryptAndReturnRandomness(m_1) + m1 := common.GetRandomPositiveInt(q) + c1, r1, err := sk1.EncryptAndReturnRandomness(m1) assert.NoError(t, err) - primes_1 := [2]*big.Int{common.GetRandomPrimeInt(testSafePrimeBits), common.GetRandomPrimeInt(testSafePrimeBits)} - NTildei_1, h1i_1, h2i_1, err := crypto.GenerateNTildei(primes_1) + primes1 := [2]*big.Int{common.GetRandomPrimeInt(testSafePrimeBits), common.GetRandomPrimeInt(testSafePrimeBits)} + Ntildei1, h1i1, h2i1, err := crypto.GenerateNTildei(primes1) assert.NoError(t, err) - proof_1, err := ProveRangeAlice(tss.EC(), pk_1, c_1, NTildei_1, h1i_1, h2i_1, m_1, r_1) + proof1, err := ProveRangeAlice(tss.EC(), pk1, c1, Ntildei1, h1i1, h2i1, m1, r1) assert.NoError(t, err) - ok_1 := proof_1.Verify(tss.EC(), pk_1, NTildei_1, h1i_1, h2i_1, c_1) - assert.True(t, ok_1, "proof must verify") + ok1 := proof1.Verify(tss.EC(), pk1, Ntildei1, h1i1, h2i1, c1) + assert.True(t, ok1, "proof must verify") - cross_0 := proof_0.Verify(tss.EC(), pk_1, NTildei_1, h1i_1, h2i_1, c_1) - assert.False(t, cross_0, "proof must not verify") + cross0 := proof0.Verify(tss.EC(), pk1, Ntildei1, h1i1, h2i1, c1) + assert.False(t, cross0, "proof must not verify") - cross_1 := proof_1.Verify(tss.EC(), pk_0, NTildei_0, h1i_0, h2i_0, c_0) - assert.False(t, cross_1, "proof must not verify") + cross1 := proof1.Verify(tss.EC(), pk0, Ntildei0, h1i0, h2i0, c0) + assert.False(t, cross1, "proof must not verify") - fmt.Println("Did verify proof 0 with data from 0?", ok_0) - fmt.Println("Did verify proof 1 with data from 1?", ok_1) + fmt.Println("Did verify proof 0 with data from 0?", ok0) + fmt.Println("Did verify proof 1 with data from 1?", ok1) - fmt.Println("Did verify proof 0 with data from 1?", cross_0) - fmt.Println("Did verify proof 1 with data from 0?", cross_1) + fmt.Println("Did verify proof 0 with data from 1?", cross0) + fmt.Println("Did verify proof 1 with data from 0?", cross1) - //always passes - bypassedProof := &RangeProofAlice{ - S: big.NewInt(0), + //new bypass + bypassedproofNew := &RangeProofAlice{ + S: big.NewInt(1), S1: big.NewInt(0), S2: big.NewInt(0), Z: big.NewInt(1), - U: big.NewInt(0), + U: big.NewInt(1), W: big.NewInt(1), } - bypassResult_1 := bypassedProof.Verify(tss.EC(), pk_0, NTildei_0, h1i_0, h2i_0, c_0) - fmt.Println("Did we bypass proof 1?", bypassResult_1) - bypassResult_2 := bypassedProof.Verify(tss.EC(), pk_1, NTildei_1, h1i_1, h2i_1, c_1) - fmt.Println("Did we bypass proof 2?", bypassResult_2) + cBogus := big.NewInt(1) + proofBogus, _ := ProveRangeAlice(tss.EC(), pk1, cBogus, Ntildei1, h1i1, h2i1, m1, r1) + + ok2 := proofBogus.Verify(tss.EC(), pk1, Ntildei1, h1i1, h2i1, cBogus) + bypassresult3 := bypassedproofNew.Verify(tss.EC(), pk1, Ntildei1, h1i1, h2i1, cBogus) + + //c = 1 is not valid, even though we can find a range proof for it that passes! + //this also means that the homo mul and add needs to be checked with this! + fmt.Println("Did verify proof bogus with data from bogus?", ok2) + fmt.Println("Did we bypass proof 3?", bypassresult3) } diff --git a/crypto/mta/share_protocol.go b/crypto/mta/share_protocol.go index b8c8be71..40e1b924 100644 --- a/crypto/mta/share_protocol.go +++ b/crypto/mta/share_protocol.go @@ -30,6 +30,7 @@ func AliceInit( } func BobMid( + Session []byte, ec elliptic.Curve, pkA *paillier.PublicKey, pf *RangeProofAlice, @@ -57,11 +58,12 @@ func BobMid( return } beta = common.ModInt(q).Sub(zero, betaPrm) - piB, err = ProveBob(ec, pkA, NTildeA, h1A, h2A, cA, cB, b, betaPrm, cRand) + piB, err = ProveBob(Session, ec, pkA, NTildeA, h1A, h2A, cA, cB, b, betaPrm, cRand) return } func BobMidWC( + Session []byte, ec elliptic.Curve, pkA *paillier.PublicKey, pf *RangeProofAlice, @@ -90,18 +92,19 @@ func BobMidWC( return } beta = common.ModInt(q).Sub(zero, betaPrm) - piB, err = ProveBobWC(ec, pkA, NTildeA, h1A, h2A, cA, cB, b, betaPrm, cRand, B) + piB, err = ProveBobWC(Session, ec, pkA, NTildeA, h1A, h2A, cA, cB, b, betaPrm, cRand, B) return } func AliceEnd( + Session []byte, ec elliptic.Curve, pkA *paillier.PublicKey, pf *ProofBob, h1A, h2A, cA, cB, NTildeA *big.Int, sk *paillier.PrivateKey, ) (*big.Int, error) { - if !pf.Verify(ec, pkA, NTildeA, h1A, h2A, cA, cB) { + if !pf.Verify(Session, ec, pkA, NTildeA, h1A, h2A, cA, cB) { return nil, errors.New("ProofBob.Verify() returned false") } alphaPrm, err := sk.Decrypt(cB) @@ -113,6 +116,7 @@ func AliceEnd( } func AliceEndWC( + Session []byte, ec elliptic.Curve, pkA *paillier.PublicKey, pf *ProofBobWC, @@ -120,7 +124,7 @@ func AliceEndWC( cA, cB, NTildeA, h1A, h2A *big.Int, sk *paillier.PrivateKey, ) (*big.Int, error) { - if !pf.Verify(ec, pkA, NTildeA, h1A, h2A, cA, cB, B) { + if !pf.Verify(Session, ec, pkA, NTildeA, h1A, h2A, cA, cB, B) { return nil, errors.New("ProofBobWC.Verify() returned false") } alphaPrm, err := sk.Decrypt(cB) diff --git a/crypto/mta/share_protocol_test.go b/crypto/mta/share_protocol_test.go index 313163e1..81ad3c93 100644 --- a/crypto/mta/share_protocol_test.go +++ b/crypto/mta/share_protocol_test.go @@ -26,6 +26,10 @@ const ( testPaillierKeyLength = 2048 ) +var ( + Session = []byte("session") +) + func TestShareProtocol(t *testing.T) { q := tss.EC().Params().N @@ -46,10 +50,10 @@ func TestShareProtocol(t *testing.T) { cA, pf, err := AliceInit(tss.EC(), pk, a, NTildej, h1j, h2j) assert.NoError(t, err) - _, cB, betaPrm, pfB, err := BobMid(tss.EC(), pk, pf, b, cA, NTildei, h1i, h2i, NTildej, h1j, h2j) + _, cB, betaPrm, pfB, err := BobMid(Session, tss.EC(), pk, pf, b, cA, NTildei, h1i, h2i, NTildej, h1j, h2j) assert.NoError(t, err) - alpha, err := AliceEnd(tss.EC(), pk, pfB, h1i, h2i, cA, cB, NTildei, sk) + alpha, err := AliceEnd(Session, tss.EC(), pk, pfB, h1i, h2i, cA, cB, NTildei, sk) assert.NoError(t, err) // expect: alpha = ab + betaPrm @@ -82,10 +86,10 @@ func TestShareProtocolWC(t *testing.T) { gBPoint, err := crypto.NewECPoint(tss.EC(), gBX, gBY) assert.NoError(t, err) - _, cB, betaPrm, pfB, err := BobMidWC(tss.EC(), pk, pf, b, cA, NTildei, h1i, h2i, NTildej, h1j, h2j, gBPoint) + _, cB, betaPrm, pfB, err := BobMidWC(Session, tss.EC(), pk, pf, b, cA, NTildei, h1i, h2i, NTildej, h1j, h2j, gBPoint) assert.NoError(t, err) - alpha, err := AliceEndWC(tss.EC(), pk, pfB, gBPoint, cA, cB, NTildei, h1i, h2i, sk) + alpha, err := AliceEndWC(Session, tss.EC(), pk, pfB, gBPoint, cA, cB, NTildei, h1i, h2i, sk) assert.NoError(t, err) // expect: alpha = ab + betaPrm diff --git a/crypto/schnorr/schnorr_proof.go b/crypto/schnorr/schnorr_proof.go index 61a95862..bf12d44e 100644 --- a/crypto/schnorr/schnorr_proof.go +++ b/crypto/schnorr/schnorr_proof.go @@ -27,7 +27,7 @@ type ( ) // NewZKProof constructs a new Schnorr ZK proof of knowledge of the discrete logarithm (GG18Spec Fig. 16) -func NewZKProof(x *big.Int, X *crypto.ECPoint) (*ZKProof, error) { +func NewZKProof(Session []byte, x *big.Int, X *crypto.ECPoint) (*ZKProof, error) { if x == nil || X == nil || !X.ValidateBasic() { return nil, errors.New("ZKProof constructor received nil or invalid value(s)") } @@ -41,7 +41,7 @@ func NewZKProof(x *big.Int, X *crypto.ECPoint) (*ZKProof, error) { var c *big.Int { - cHash := common.SHA512_256i(X.X(), X.Y(), g.X(), g.Y(), alpha.X(), alpha.Y()) + cHash := common.SHA512_256i_TAGGED(Session, X.X(), X.Y(), g.X(), g.Y(), alpha.X(), alpha.Y()) c = common.RejectionSample(q, cHash) } t := new(big.Int).Mul(c, x) @@ -51,7 +51,7 @@ func NewZKProof(x *big.Int, X *crypto.ECPoint) (*ZKProof, error) { } // NewZKProof verifies a new Schnorr ZK proof of knowledge of the discrete logarithm (GG18Spec Fig. 16) -func (pf *ZKProof) Verify(X *crypto.ECPoint) bool { +func (pf *ZKProof) Verify(Session []byte, X *crypto.ECPoint) bool { if pf == nil || !pf.ValidateBasic() { return false } @@ -62,7 +62,7 @@ func (pf *ZKProof) Verify(X *crypto.ECPoint) bool { var c *big.Int { - cHash := common.SHA512_256i(X.X(), X.Y(), g.X(), g.Y(), pf.Alpha.X(), pf.Alpha.Y()) + cHash := common.SHA512_256i_TAGGED(Session, X.X(), X.Y(), g.X(), g.Y(), pf.Alpha.X(), pf.Alpha.Y()) c = common.RejectionSample(q, cHash) } tG := crypto.ScalarBaseMult(ec, pf.T) @@ -79,7 +79,7 @@ func (pf *ZKProof) ValidateBasic() bool { } // NewZKProof constructs a new Schnorr ZK proof of knowledge s_i, l_i such that V_i = R^s_i, g^l_i (GG18Spec Fig. 17) -func NewZKVProof(V, R *crypto.ECPoint, s, l *big.Int) (*ZKVProof, error) { +func NewZKVProof(Session []byte, V, R *crypto.ECPoint, s, l *big.Int) (*ZKVProof, error) { if V == nil || R == nil || s == nil || l == nil || !V.ValidateBasic() || !R.ValidateBasic() { return nil, errors.New("ZKVProof constructor received nil value(s)") } @@ -95,7 +95,7 @@ func NewZKVProof(V, R *crypto.ECPoint, s, l *big.Int) (*ZKVProof, error) { var c *big.Int { - cHash := common.SHA512_256i(V.X(), V.Y(), R.X(), R.Y(), g.X(), g.Y(), alpha.X(), alpha.Y()) + cHash := common.SHA512_256i_TAGGED(Session, V.X(), V.Y(), R.X(), R.Y(), g.X(), g.Y(), alpha.X(), alpha.Y()) c = common.RejectionSample(q, cHash) } modQ := common.ModInt(q) @@ -105,7 +105,7 @@ func NewZKVProof(V, R *crypto.ECPoint, s, l *big.Int) (*ZKVProof, error) { return &ZKVProof{Alpha: alpha, T: t, U: u}, nil } -func (pf *ZKVProof) Verify(V, R *crypto.ECPoint) bool { +func (pf *ZKVProof) Verify(Session []byte, V, R *crypto.ECPoint) bool { if pf == nil || !pf.ValidateBasic() { return false } @@ -116,7 +116,7 @@ func (pf *ZKVProof) Verify(V, R *crypto.ECPoint) bool { var c *big.Int { - cHash := common.SHA512_256i(V.X(), V.Y(), R.X(), R.Y(), g.X(), g.Y(), pf.Alpha.X(), pf.Alpha.Y()) + cHash := common.SHA512_256i_TAGGED(Session, V.X(), V.Y(), R.X(), R.Y(), g.X(), g.Y(), pf.Alpha.X(), pf.Alpha.Y()) c = common.RejectionSample(q, cHash) } tR := R.ScalarMult(pf.T) diff --git a/crypto/schnorr/schnorr_proof_test.go b/crypto/schnorr/schnorr_proof_test.go index c81fed4d..91175024 100644 --- a/crypto/schnorr/schnorr_proof_test.go +++ b/crypto/schnorr/schnorr_proof_test.go @@ -17,11 +17,15 @@ import ( "github.com/bnb-chain/tss-lib/tss" ) +var ( + Session = []byte("session") +) + func TestSchnorrProof(t *testing.T) { q := tss.EC().Params().N u := common.GetRandomPositiveInt(q) uG := crypto.ScalarBaseMult(tss.EC(), u) - proof, _ := NewZKProof(u, uG) + proof, _ := NewZKProof(Session, u, uG) assert.True(t, proof.Alpha.IsOnCurve()) assert.NotZero(t, proof.Alpha.X()) @@ -34,8 +38,8 @@ func TestSchnorrProofVerify(t *testing.T) { u := common.GetRandomPositiveInt(q) X := crypto.ScalarBaseMult(tss.EC(), u) - proof, _ := NewZKProof(u, X) - res := proof.Verify(X) + proof, _ := NewZKProof(Session, u, X) + res := proof.Verify(Session, X) assert.True(t, res, "verify result must be true") } @@ -47,8 +51,8 @@ func TestSchnorrProofVerifyBadX(t *testing.T) { X := crypto.ScalarBaseMult(tss.EC(), u) X2 := crypto.ScalarBaseMult(tss.EC(), u2) - proof, _ := NewZKProof(u2, X2) - res := proof.Verify(X) + proof, _ := NewZKProof(Session, u2, X2) + res := proof.Verify(Session, X) assert.False(t, res, "verify result must be false") } @@ -63,8 +67,8 @@ func TestSchnorrVProofVerify(t *testing.T) { lG := crypto.ScalarBaseMult(tss.EC(), l) V, _ := Rs.Add(lG) - proof, _ := NewZKVProof(V, R, s, l) - res := proof.Verify(V, R) + proof, _ := NewZKVProof(Session, V, R, s, l) + res := proof.Verify(Session, V, R) assert.True(t, res, "verify result must be true") } @@ -78,8 +82,8 @@ func TestSchnorrVProofVerifyBadPartialV(t *testing.T) { Rs := R.ScalarMult(s) V := Rs - proof, _ := NewZKVProof(V, R, s, l) - res := proof.Verify(V, R) + proof, _ := NewZKVProof(Session, V, R, s, l) + res := proof.Verify(Session, V, R) assert.False(t, res, "verify result must be false") } @@ -95,8 +99,8 @@ func TestSchnorrVProofVerifyBadS(t *testing.T) { lG := crypto.ScalarBaseMult(tss.EC(), l) V, _ := Rs.Add(lG) - proof, _ := NewZKVProof(V, R, s2, l) - res := proof.Verify(V, R) + proof, _ := NewZKVProof(Session, V, R, s2, l) + res := proof.Verify(Session, V, R) assert.False(t, res, "verify result must be false") } diff --git a/ecdsa/keygen/ecdsa-keygen.pb.go b/ecdsa/keygen/ecdsa-keygen.pb.go index 539b7b55..5029072e 100644 --- a/ecdsa/keygen/ecdsa-keygen.pb.go +++ b/ecdsa/keygen/ecdsa-keygen.pb.go @@ -185,6 +185,7 @@ type KGRound2Message2 struct { unknownFields protoimpl.UnknownFields DeCommitment [][]byte `protobuf:"bytes,1,rep,name=de_commitment,json=deCommitment,proto3" json:"de_commitment,omitempty"` + ModProof [][]byte `protobuf:"bytes,2,rep,name=modProof,proto3" json:"modProof,omitempty"` } func (x *KGRound2Message2) Reset() { @@ -226,6 +227,13 @@ func (x *KGRound2Message2) GetDeCommitment() [][]byte { return nil } +func (x *KGRound2Message2) GetModProof() [][]byte { + if x != nil { + return x.ModProof + } + return nil +} + // Represents a BROADCAST message sent to each party during Round 3 of the ECDSA TSS keygen protocol. type KGRound3Message struct { state protoimpl.MessageState @@ -297,16 +305,17 @@ var file_protob_ecdsa_keygen_proto_rawDesc = []byte{ 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x08, - 0x66, 0x61, 0x63, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x37, 0x0a, 0x10, 0x4b, 0x47, 0x52, 0x6f, + 0x66, 0x61, 0x63, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x53, 0x0a, 0x10, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0c, 0x64, 0x65, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x38, 0x0a, 0x0f, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, - 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x61, - 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x0e, 0x5a, 0x0c, 0x65, - 0x63, 0x64, 0x73, 0x61, 0x2f, 0x6b, 0x65, 0x79, 0x67, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0c, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x22, 0x38, 0x0a, + 0x0f, 0x4b, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, + 0x6f, 0x66, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, + 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x0e, 0x5a, 0x0c, 0x65, 0x63, 0x64, 0x73, 0x61, + 0x2f, 0x6b, 0x65, 0x79, 0x67, 0x65, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/ecdsa/keygen/local_party.go b/ecdsa/keygen/local_party.go index 9d0066e3..5513aba9 100644 --- a/ecdsa/keygen/local_party.go +++ b/ecdsa/keygen/local_party.go @@ -49,6 +49,8 @@ type ( ui *big.Int // used for tests KGCs []cmt.HashCommitment vs vss.Vs + ssid []byte + ssidNonce *big.Int shares vss.Shares deCommitPolyG cmt.HashDeCommitment } diff --git a/ecdsa/keygen/local_party_test.go b/ecdsa/keygen/local_party_test.go index 8494a9d8..c392f549 100644 --- a/ecdsa/keygen/local_party_test.go +++ b/ecdsa/keygen/local_party_test.go @@ -193,6 +193,10 @@ func TestE2EConcurrentAndSaveFixtures(t *testing.T) { for i := 0; i < len(pIDs); i++ { var P *LocalParty params := tss.NewParameters(tss.S256(), p2pCtx, pIDs[i], len(pIDs), threshold) + // do not use in untrusted setting + params.SetNoProofMod() + // do not use in untrusted setting + params.SetNoProofFac() if i < len(fixtures) { P = NewLocalParty(params, outCh, endCh, fixtures[i].LocalPreParams).(*LocalParty) } else { diff --git a/ecdsa/keygen/messages.go b/ecdsa/keygen/messages.go index e3f43d78..9be7d852 100644 --- a/ecdsa/keygen/messages.go +++ b/ecdsa/keygen/messages.go @@ -8,6 +8,7 @@ package keygen import ( "github.com/bnb-chain/tss-lib/crypto/facproof" + "github.com/bnb-chain/tss-lib/crypto/modproof" "math/big" "github.com/bnb-chain/tss-lib/common" @@ -146,14 +147,17 @@ func (m *KGRound2Message1) UnmarshalFacProof() (*facproof.ProofFac, error) { func NewKGRound2Message2( from *tss.PartyID, deCommitment cmt.HashDeCommitment, + proof *modproof.ProofMod, ) tss.ParsedMessage { meta := tss.MessageRouting{ From: from, IsBroadcast: true, } dcBzs := common.BigIntsToBytes(deCommitment) + proofBzs := proof.Bytes() content := &KGRound2Message2{ DeCommitment: dcBzs, + ModProof: proofBzs[:], } msg := tss.NewMessageWrapper(meta, content) return tss.NewMessage(meta, content, msg) @@ -162,6 +166,8 @@ func NewKGRound2Message2( func (m *KGRound2Message2) ValidateBasic() bool { return m != nil && common.NonEmptyMultiBytes(m.GetDeCommitment()) + // This is commented for backward compatibility, which msg has no proof + // && common.NonEmptyMultiBytes(m.GetModProof(), modproof.ProofModBytesParts) } func (m *KGRound2Message2) UnmarshalDeCommitment() []*big.Int { @@ -169,6 +175,10 @@ func (m *KGRound2Message2) UnmarshalDeCommitment() []*big.Int { return cmt.NewHashDeCommitmentFromBytes(deComBzs) } +func (m *KGRound2Message2) UnmarshalModProof() (*modproof.ProofMod, error) { + return modproof.NewProofFromBytes(m.GetModProof()) +} + // ----- // func NewKGRound3Message( diff --git a/ecdsa/keygen/prepare.go b/ecdsa/keygen/prepare.go index 6076e58e..775ef53e 100644 --- a/ecdsa/keygen/prepare.go +++ b/ecdsa/keygen/prepare.go @@ -24,6 +24,8 @@ const ( safePrimeBitLen = 1024 // Ticker for printing log statements while generating primes/modulus logProgressTickInterval = 8 * time.Second + // Safe big len using random for ssid + SafeBitLen = 1024 ) // GeneratePreParams finds two safe primes and computes the Paillier secret required for the protocol. diff --git a/ecdsa/keygen/round_1.go b/ecdsa/keygen/round_1.go index 9cfda2df..96104475 100644 --- a/ecdsa/keygen/round_1.go +++ b/ecdsa/keygen/round_1.go @@ -100,8 +100,14 @@ func (round *round1) Start() *tss.Error { // and keep in temporary storage: // - VSS Vs // - our set of Shamir shares + round.temp.ssidNonce = new(big.Int).SetUint64(0) round.save.ShareID = ids[i] round.temp.vs = vs + ssid, err := round.getSSID() + if err != nil { + return round.WrapError(errors.New("failed to generate ssid")) + } + round.temp.ssid = ssid round.temp.shares = shares // for this P: SAVE de-commitments, paillier keys for round 2 diff --git a/ecdsa/keygen/round_2.go b/ecdsa/keygen/round_2.go index b1f19ff3..364235e9 100644 --- a/ecdsa/keygen/round_2.go +++ b/ecdsa/keygen/round_2.go @@ -9,9 +9,12 @@ package keygen import ( "encoding/hex" "errors" - "github.com/bnb-chain/tss-lib/crypto/facproof" + "math/big" "sync" + "github.com/bnb-chain/tss-lib/crypto/facproof" + "github.com/bnb-chain/tss-lib/crypto/modproof" + "github.com/bnb-chain/tss-lib/common" "github.com/bnb-chain/tss-lib/tss" ) @@ -110,12 +113,19 @@ func (round *round2) Start() *tss.Error { // 5. p2p send share ij to Pj shares := round.temp.shares + ContextI := append(round.temp.ssid, big.NewInt(int64(i)).Bytes()...) for j, Pj := range round.Parties().IDs() { - facProof, err := facproof.NewProof(round.EC(), round.save.PaillierSK.N, round.save.NTildej[j], - round.save.H1j[j], round.save.H2j[j], round.save.PaillierSK.P, round.save.PaillierSK.Q) - if err != nil { - return round.WrapError(err, round.PartyID()) + facProof := &facproof.ProofFac{P: zero, Q: zero, A: zero, B: zero, T: zero, Sigma: zero, + Z1: zero, Z2: zero, W1: zero, W2: zero, V: zero} + if !round.Params().NoProofFac() { + var err error + facProof, err = facproof.NewProof(ContextI, round.EC(), round.save.PaillierSK.N, round.save.NTildej[j], + round.save.H1j[j], round.save.H2j[j], round.save.PaillierSK.P, round.save.PaillierSK.Q) + if err != nil { + return round.WrapError(err, round.PartyID()) + } + } r2msg1 := NewKGRound2Message1(Pj, round.PartyID(), shares[j], facProof) // do not send to this Pj, but store for round 3 @@ -127,7 +137,16 @@ func (round *round2) Start() *tss.Error { } // 7. BROADCAST de-commitments of Shamir poly*G - r2msg2 := NewKGRound2Message2(round.PartyID(), round.temp.deCommitPolyG) + modProof := &modproof.ProofMod{W: zero, X: *new([80]*big.Int), A: zero, B: zero, Z: *new([80]*big.Int)} + if !round.Parameters.NoProofMod() { + var err error + modProof, err = modproof.NewProof(ContextI, round.save.PaillierSK.N, + round.save.PaillierSK.P, round.save.PaillierSK.Q) + if err != nil { + return round.WrapError(err, round.PartyID()) + } + } + r2msg2 := NewKGRound2Message2(round.PartyID(), round.temp.deCommitPolyG, modProof) round.temp.kgRound2Message2s[i] = r2msg2 round.out <- r2msg2 diff --git a/ecdsa/keygen/round_3.go b/ecdsa/keygen/round_3.go index 6146a2ca..205569ed 100644 --- a/ecdsa/keygen/round_3.go +++ b/ecdsa/keygen/round_3.go @@ -65,6 +65,7 @@ func (round *round3) Start() *tss.Error { if j == PIdx { continue } + ContextJ := common.AppendBigIntToBytesSlice(round.temp.ssid, big.NewInt(int64(j))) // 6-8. go func(j int, ch chan<- vssOut) { // 4-9. @@ -82,6 +83,21 @@ func (round *round3) Start() *tss.Error { ch <- vssOut{err, nil} return } + modProof, err := r2msg2.UnmarshalModProof() + if err != nil && round.Parameters.NoProofMod() { + // For old parties, the modProof could be not exist + // Not return error for compatibility reason + common.Logger.Warningf("modProof not exist:%s", Ps[j]) + } else { + if err != nil { + ch <- vssOut{errors.New("modProof verify failed"), nil} + return + } + if ok = modProof.Verify(ContextJ, round.save.PaillierPKs[j].N); !ok { + ch <- vssOut{errors.New("modProof verify failed"), nil} + return + } + } r2msg1 := round.temp.kgRound2Message1s[j].Content().(*KGRound2Message1) PjShare := vss.Share{ Threshold: round.Threshold(), @@ -93,12 +109,16 @@ func (round *round3) Start() *tss.Error { return } facProof, err := r2msg1.UnmarshalFacProof() - if err != nil { + if err != nil && round.NoProofFac() { // For old parties, the facProof could be not exist // Not return error for compatibility reason - common.Logger.Fatalf("facProof not exist:%s", Ps[j]) + common.Logger.Warningf("facProof not exist:%s", Ps[j]) } else { - if ok = facProof.Verify(round.EC(), round.save.PaillierPKs[j].N, round.save.NTildei, + if err != nil { + ch <- vssOut{errors.New("facProof verify failed"), nil} + return + } + if ok = facProof.Verify(ContextJ, round.EC(), round.save.PaillierPKs[j].N, round.save.NTildei, round.save.H1i, round.save.H2i); !ok { ch <- vssOut{errors.New("facProof verify failed"), nil} return diff --git a/ecdsa/keygen/rounds.go b/ecdsa/keygen/rounds.go index 313184ab..5bce6d10 100644 --- a/ecdsa/keygen/rounds.go +++ b/ecdsa/keygen/rounds.go @@ -7,6 +7,9 @@ package keygen import ( + "math/big" + + "github.com/bnb-chain/tss-lib/common" "github.com/bnb-chain/tss-lib/tss" ) @@ -94,3 +97,14 @@ func (round *base) resetOK() { round.ok[j] = false } } + +// get ssid from local params +func (round *base) getSSID() ([]byte, error) { + ssidList := []*big.Int{round.EC().Params().P, round.EC().Params().N, round.EC().Params().Gx, round.EC().Params().Gy} // ec curve + ssidList = append(ssidList, round.Parties().IDs().Keys()...) + ssidList = append(ssidList, big.NewInt(int64(round.number))) // round number + ssidList = append(ssidList, round.temp.ssidNonce) + ssid := common.SHA512_256i(ssidList...).Bytes() + + return ssid, nil +} diff --git a/ecdsa/keygen/save_data.go b/ecdsa/keygen/save_data.go index 5b1c455d..9218d9b6 100644 --- a/ecdsa/keygen/save_data.go +++ b/ecdsa/keygen/save_data.go @@ -61,8 +61,6 @@ func NewLocalPartySaveData(partyCount int) (saveData LocalPartySaveData) { func (preParams LocalPreParams) Validate() bool { return preParams.PaillierSK != nil && - preParams.PaillierSK.P != nil && - preParams.PaillierSK.Q != nil && preParams.NTildei != nil && preParams.H1i != nil && preParams.H2i != nil @@ -70,6 +68,8 @@ func (preParams LocalPreParams) Validate() bool { func (preParams LocalPreParams) ValidateWithProof() bool { return preParams.Validate() && + preParams.PaillierSK.P != nil && + preParams.PaillierSK.Q != nil && preParams.Alpha != nil && preParams.Beta != nil && preParams.P != nil && diff --git a/ecdsa/resharing/ecdsa-resharing.pb.go b/ecdsa/resharing/ecdsa-resharing.pb.go index fed8d83b..e418b08c 100644 --- a/ecdsa/resharing/ecdsa-resharing.pb.go +++ b/ecdsa/resharing/ecdsa-resharing.pb.go @@ -6,8 +6,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 -// protoc v3.14.0 +// protoc-gen-go v1.28.0 +// protoc v3.19.4 // source: protob/ecdsa-resharing.proto package resharing @@ -36,6 +36,7 @@ type DGRound1Message struct { EcdsaPubX []byte `protobuf:"bytes,1,opt,name=ecdsa_pub_x,json=ecdsaPubX,proto3" json:"ecdsa_pub_x,omitempty"` EcdsaPubY []byte `protobuf:"bytes,2,opt,name=ecdsa_pub_y,json=ecdsaPubY,proto3" json:"ecdsa_pub_y,omitempty"` VCommitment []byte `protobuf:"bytes,3,opt,name=v_commitment,json=vCommitment,proto3" json:"v_commitment,omitempty"` + Ssid []byte `protobuf:"bytes,4,opt,name=ssid,proto3" json:"ssid,omitempty"` } func (x *DGRound1Message) Reset() { @@ -91,6 +92,13 @@ func (x *DGRound1Message) GetVCommitment() []byte { return nil } +func (x *DGRound1Message) GetSsid() []byte { + if x != nil { + return x.Ssid + } + return nil +} + // // The Round 2 data is broadcast to other peers of the New Committee in this message. type DGRound2Message1 struct { @@ -98,13 +106,13 @@ type DGRound2Message1 struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - PaillierN []byte `protobuf:"bytes,1,opt,name=paillier_n,json=paillierN,proto3" json:"paillier_n,omitempty"` - PaillierProof [][]byte `protobuf:"bytes,2,rep,name=paillier_proof,json=paillierProof,proto3" json:"paillier_proof,omitempty"` - NTilde []byte `protobuf:"bytes,3,opt,name=n_tilde,json=nTilde,proto3" json:"n_tilde,omitempty"` - H1 []byte `protobuf:"bytes,4,opt,name=h1,proto3" json:"h1,omitempty"` - H2 []byte `protobuf:"bytes,5,opt,name=h2,proto3" json:"h2,omitempty"` - Dlnproof_1 [][]byte `protobuf:"bytes,6,rep,name=dlnproof_1,json=dlnproof1,proto3" json:"dlnproof_1,omitempty"` - Dlnproof_2 [][]byte `protobuf:"bytes,7,rep,name=dlnproof_2,json=dlnproof2,proto3" json:"dlnproof_2,omitempty"` + PaillierN []byte `protobuf:"bytes,1,opt,name=paillier_n,json=paillierN,proto3" json:"paillier_n,omitempty"` + ModProof [][]byte `protobuf:"bytes,2,rep,name=modProof,proto3" json:"modProof,omitempty"` + NTilde []byte `protobuf:"bytes,3,opt,name=n_tilde,json=nTilde,proto3" json:"n_tilde,omitempty"` + H1 []byte `protobuf:"bytes,4,opt,name=h1,proto3" json:"h1,omitempty"` + H2 []byte `protobuf:"bytes,5,opt,name=h2,proto3" json:"h2,omitempty"` + Dlnproof_1 [][]byte `protobuf:"bytes,6,rep,name=dlnproof_1,json=dlnproof1,proto3" json:"dlnproof_1,omitempty"` + Dlnproof_2 [][]byte `protobuf:"bytes,7,rep,name=dlnproof_2,json=dlnproof2,proto3" json:"dlnproof_2,omitempty"` } func (x *DGRound2Message1) Reset() { @@ -146,9 +154,9 @@ func (x *DGRound2Message1) GetPaillierN() []byte { return nil } -func (x *DGRound2Message1) GetPaillierProof() [][]byte { +func (x *DGRound2Message1) GetModProof() [][]byte { if x != nil { - return x.PaillierProof + return x.ModProof } return nil } @@ -328,14 +336,14 @@ func (x *DGRound3Message2) GetVDecommitment() [][]byte { // // The Round 4 "ACK" is broadcast to peers of the Old and New Committees from the New Committee in this message. -type DGRound4Message struct { +type DGRound4Message2 struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *DGRound4Message) Reset() { - *x = DGRound4Message{} +func (x *DGRound4Message2) Reset() { + *x = DGRound4Message2{} if protoimpl.UnsafeEnabled { mi := &file_protob_ecdsa_resharing_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -343,13 +351,13 @@ func (x *DGRound4Message) Reset() { } } -func (x *DGRound4Message) String() string { +func (x *DGRound4Message2) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DGRound4Message) ProtoMessage() {} +func (*DGRound4Message2) ProtoMessage() {} -func (x *DGRound4Message) ProtoReflect() protoreflect.Message { +func (x *DGRound4Message2) ProtoReflect() protoreflect.Message { mi := &file_protob_ecdsa_resharing_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -361,49 +369,102 @@ func (x *DGRound4Message) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DGRound4Message.ProtoReflect.Descriptor instead. -func (*DGRound4Message) Descriptor() ([]byte, []int) { +// Deprecated: Use DGRound4Message2.ProtoReflect.Descriptor instead. +func (*DGRound4Message2) Descriptor() ([]byte, []int) { return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{5} } +// +// The Round 4 message to peers of New Committees from the New Committee in this message. +type DGRound4Message1 struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FacProof [][]byte `protobuf:"bytes,1,rep,name=facProof,proto3" json:"facProof,omitempty"` +} + +func (x *DGRound4Message1) Reset() { + *x = DGRound4Message1{} + if protoimpl.UnsafeEnabled { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DGRound4Message1) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DGRound4Message1) ProtoMessage() {} + +func (x *DGRound4Message1) ProtoReflect() protoreflect.Message { + mi := &file_protob_ecdsa_resharing_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DGRound4Message1.ProtoReflect.Descriptor instead. +func (*DGRound4Message1) Descriptor() ([]byte, []int) { + return file_protob_ecdsa_resharing_proto_rawDescGZIP(), []int{6} +} + +func (x *DGRound4Message1) GetFacProof() [][]byte { + if x != nil { + return x.FacProof + } + return nil +} + var File_protob_ecdsa_resharing_proto protoreflect.FileDescriptor var file_protob_ecdsa_resharing_proto_rawDesc = []byte{ 0x0a, 0x1c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x2f, 0x65, 0x63, 0x64, 0x73, 0x61, 0x2d, 0x72, 0x65, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x1e, 0x62, 0x69, 0x6e, 0x61, 0x6e, 0x63, 0x65, 0x2e, 0x74, 0x73, 0x73, 0x6c, 0x69, 0x62, 0x2e, 0x65, - 0x63, 0x64, 0x73, 0x61, 0x2e, 0x72, 0x65, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x74, - 0x0a, 0x0f, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x63, 0x64, 0x73, 0x61, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x78, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x63, 0x64, 0x73, 0x61, 0x50, 0x75, 0x62, - 0x58, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x63, 0x64, 0x73, 0x61, 0x5f, 0x70, 0x75, 0x62, 0x5f, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x63, 0x64, 0x73, 0x61, 0x50, 0x75, 0x62, - 0x59, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x76, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xcf, 0x01, 0x0a, 0x10, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, - 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x69, - 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, - 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x4e, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x69, 0x6c, - 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, - 0x52, 0x0d, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, - 0x17, 0x0a, 0x07, 0x6e, 0x5f, 0x74, 0x69, 0x6c, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, - 0x52, 0x06, 0x6e, 0x54, 0x69, 0x6c, 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x31, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x68, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x32, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, 0x68, 0x32, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6c, 0x6e, 0x70, - 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x31, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x64, 0x6c, - 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x31, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6c, 0x6e, 0x70, 0x72, - 0x6f, 0x6f, 0x66, 0x5f, 0x32, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x64, 0x6c, 0x6e, - 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x32, 0x22, 0x12, 0x0a, 0x10, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, - 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x22, 0x28, 0x0a, 0x10, 0x44, 0x47, - 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x14, - 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, - 0x68, 0x61, 0x72, 0x65, 0x22, 0x39, 0x0a, 0x10, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x5f, 0x64, 0x65, - 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, - 0x52, 0x0d, 0x76, 0x44, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x11, 0x0a, 0x0f, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x34, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x42, 0x11, 0x5a, 0x0f, 0x65, 0x63, 0x64, 0x73, 0x61, 0x2f, 0x72, 0x65, 0x73, 0x68, - 0x61, 0x72, 0x69, 0x6e, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x63, 0x64, 0x73, 0x61, 0x2e, 0x72, 0x65, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, 0x22, 0x88, + 0x01, 0x0a, 0x0f, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x63, 0x64, 0x73, 0x61, 0x5f, 0x70, 0x75, 0x62, 0x5f, + 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x63, 0x64, 0x73, 0x61, 0x50, 0x75, + 0x62, 0x58, 0x12, 0x1e, 0x0a, 0x0b, 0x65, 0x63, 0x64, 0x73, 0x61, 0x5f, 0x70, 0x75, 0x62, 0x5f, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x09, 0x65, 0x63, 0x64, 0x73, 0x61, 0x50, 0x75, + 0x62, 0x59, 0x12, 0x21, 0x0a, 0x0c, 0x76, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0b, 0x76, 0x43, 0x6f, 0x6d, 0x6d, 0x69, + 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x73, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x73, 0x73, 0x69, 0x64, 0x22, 0xc4, 0x01, 0x0a, 0x10, 0x44, 0x47, + 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x1d, + 0x0a, 0x0a, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x5f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0c, 0x52, 0x09, 0x70, 0x61, 0x69, 0x6c, 0x6c, 0x69, 0x65, 0x72, 0x4e, 0x12, 0x1a, 0x0a, + 0x08, 0x6d, 0x6f, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0c, 0x52, + 0x08, 0x6d, 0x6f, 0x64, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x5f, 0x74, + 0x69, 0x6c, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x6e, 0x54, 0x69, 0x6c, + 0x64, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, + 0x68, 0x31, 0x12, 0x0e, 0x0a, 0x02, 0x68, 0x32, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x02, + 0x68, 0x32, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x31, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, + 0x31, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x5f, 0x32, 0x18, + 0x07, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x09, 0x64, 0x6c, 0x6e, 0x70, 0x72, 0x6f, 0x6f, 0x66, 0x32, + 0x22, 0x12, 0x0a, 0x10, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x32, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x32, 0x22, 0x28, 0x0a, 0x10, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x31, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x73, 0x68, 0x61, 0x72, 0x65, 0x22, 0x39, + 0x0a, 0x10, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x33, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x32, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x5f, 0x64, 0x65, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0c, 0x52, 0x0d, 0x76, 0x44, 0x65, 0x63, + 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x12, 0x0a, 0x10, 0x44, 0x47, 0x52, + 0x6f, 0x75, 0x6e, 0x64, 0x34, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x22, 0x2e, 0x0a, + 0x10, 0x44, 0x47, 0x52, 0x6f, 0x75, 0x6e, 0x64, 0x34, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x31, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x61, 0x63, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0c, 0x52, 0x08, 0x66, 0x61, 0x63, 0x50, 0x72, 0x6f, 0x6f, 0x66, 0x42, 0x11, 0x5a, + 0x0f, 0x65, 0x63, 0x64, 0x73, 0x61, 0x2f, 0x72, 0x65, 0x73, 0x68, 0x61, 0x72, 0x69, 0x6e, 0x67, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -418,14 +479,15 @@ func file_protob_ecdsa_resharing_proto_rawDescGZIP() []byte { return file_protob_ecdsa_resharing_proto_rawDescData } -var file_protob_ecdsa_resharing_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_protob_ecdsa_resharing_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_protob_ecdsa_resharing_proto_goTypes = []interface{}{ (*DGRound1Message)(nil), // 0: binance.tsslib.ecdsa.resharing.DGRound1Message (*DGRound2Message1)(nil), // 1: binance.tsslib.ecdsa.resharing.DGRound2Message1 (*DGRound2Message2)(nil), // 2: binance.tsslib.ecdsa.resharing.DGRound2Message2 (*DGRound3Message1)(nil), // 3: binance.tsslib.ecdsa.resharing.DGRound3Message1 (*DGRound3Message2)(nil), // 4: binance.tsslib.ecdsa.resharing.DGRound3Message2 - (*DGRound4Message)(nil), // 5: binance.tsslib.ecdsa.resharing.DGRound4Message + (*DGRound4Message2)(nil), // 5: binance.tsslib.ecdsa.resharing.DGRound4Message2 + (*DGRound4Message1)(nil), // 6: binance.tsslib.ecdsa.resharing.DGRound4Message1 } var file_protob_ecdsa_resharing_proto_depIdxs = []int32{ 0, // [0:0] is the sub-list for method output_type @@ -502,7 +564,19 @@ func file_protob_ecdsa_resharing_proto_init() { } } file_protob_ecdsa_resharing_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DGRound4Message); i { + switch v := v.(*DGRound4Message2); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protob_ecdsa_resharing_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DGRound4Message1); i { case 0: return &v.state case 1: @@ -520,7 +594,7 @@ func file_protob_ecdsa_resharing_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protob_ecdsa_resharing_proto_rawDesc, NumEnums: 0, - NumMessages: 6, + NumMessages: 7, NumExtensions: 0, NumServices: 0, }, diff --git a/ecdsa/resharing/local_party.go b/ecdsa/resharing/local_party.go index 3b87d258..a8efdbb0 100644 --- a/ecdsa/resharing/local_party.go +++ b/ecdsa/resharing/local_party.go @@ -42,7 +42,8 @@ type ( dgRound2Message2s, dgRound3Message1s, dgRound3Message2s, - dgRound4Messages []tss.ParsedMessage + dgRound4Message1s, + dgRound4Message2s []tss.ParsedMessage } localTempData struct { @@ -57,6 +58,9 @@ type ( newXi *big.Int newKs []*big.Int newBigXjs []*crypto.ECPoint // Xj to save in round 5 + + ssid []byte + ssidNonce *big.Int } ) @@ -90,7 +94,8 @@ func NewLocalParty( p.temp.dgRound2Message2s = make([]tss.ParsedMessage, params.NewPartyCount()) // " p.temp.dgRound3Message1s = make([]tss.ParsedMessage, oldPartyCount) // from t+1 of Old Committee p.temp.dgRound3Message2s = make([]tss.ParsedMessage, oldPartyCount) // " - p.temp.dgRound4Messages = make([]tss.ParsedMessage, params.NewPartyCount()) // from n of New Committee + p.temp.dgRound4Message1s = make([]tss.ParsedMessage, params.NewPartyCount()) // from n of New Committee + p.temp.dgRound4Message2s = make([]tss.ParsedMessage, params.NewPartyCount()) // from n of New Committee // save data init if key.LocalPreParams.ValidateWithProof() { p.save.LocalPreParams = key.LocalPreParams @@ -125,7 +130,7 @@ func (p *LocalParty) ValidateMessage(msg tss.ParsedMessage) (bool, *tss.Error) { // check that the message's "from index" will fit into the array var maxFromIdx int switch msg.Content().(type) { - case *DGRound2Message1, *DGRound2Message2, *DGRound4Message: + case *DGRound2Message1, *DGRound2Message2, *DGRound4Message1, *DGRound4Message2: maxFromIdx = len(p.params.NewParties().IDs()) - 1 default: maxFromIdx = len(p.params.OldParties().IDs()) - 1 @@ -157,8 +162,10 @@ func (p *LocalParty) StoreMessage(msg tss.ParsedMessage) (bool, *tss.Error) { p.temp.dgRound3Message1s[fromPIdx] = msg case *DGRound3Message2: p.temp.dgRound3Message2s[fromPIdx] = msg - case *DGRound4Message: - p.temp.dgRound4Messages[fromPIdx] = msg + case *DGRound4Message1: + p.temp.dgRound4Message1s[fromPIdx] = msg + case *DGRound4Message2: + p.temp.dgRound4Message2s[fromPIdx] = msg default: // unrecognised message, just ignore! common.Logger.Warningf("unrecognised message ignored: %v", msg) return false, nil diff --git a/ecdsa/resharing/local_party_test.go b/ecdsa/resharing/local_party_test.go index 8607e200..278de530 100644 --- a/ecdsa/resharing/local_party_test.go +++ b/ecdsa/resharing/local_party_test.go @@ -45,7 +45,7 @@ func TestE2EConcurrent(t *testing.T) { threshold, newThreshold := testThreshold, testThreshold // PHASE: load keygen fixtures - firstPartyIdx, extraParties := 5, 1 // extra can be 0 to N-first + firstPartyIdx, extraParties := 1, 1 // extra can be 0 to N-first oldKeys, oldPIDs, err := keygen.LoadKeygenTestFixtures(testThreshold+1+extraParties+firstPartyIdx, firstPartyIdx) assert.NoError(t, err, "should load keygen fixtures") @@ -79,6 +79,10 @@ func TestE2EConcurrent(t *testing.T) { // init the new parties for j, pID := range newPIDs { params := tss.NewReSharingParameters(tss.S256(), oldP2PCtx, newP2PCtx, pID, testParticipants, threshold, newPCount, newThreshold) + // do not use in untrusted setting + params.SetNoProofMod() + // do not use in untrusted setting + params.SetNoProofFac() save := keygen.NewLocalPartySaveData(newPCount) if j < len(fixtures) && len(newPIDs) <= len(fixtures) { save.LocalPreParams = fixtures[j].LocalPreParams @@ -141,6 +145,7 @@ func TestE2EConcurrent(t *testing.T) { endedOldCommittee++ } atomic.AddInt32(&reSharingEnded, 1) + fmt.Println("TODO old:", len(oldCommittee), "new:", len(newCommittee), "finished:", reSharingEnded) if atomic.LoadInt32(&reSharingEnded) == int32(len(oldCommittee)+len(newCommittee)) { assert.Equal(t, len(oldCommittee), endedOldCommittee) t.Logf("Resharing done. Reshared %d participants", reSharingEnded) diff --git a/ecdsa/resharing/messages.go b/ecdsa/resharing/messages.go index a85d02a8..b655b309 100644 --- a/ecdsa/resharing/messages.go +++ b/ecdsa/resharing/messages.go @@ -14,6 +14,8 @@ import ( "github.com/bnb-chain/tss-lib/crypto" cmt "github.com/bnb-chain/tss-lib/crypto/commitments" "github.com/bnb-chain/tss-lib/crypto/dlnproof" + "github.com/bnb-chain/tss-lib/crypto/facproof" + "github.com/bnb-chain/tss-lib/crypto/modproof" "github.com/bnb-chain/tss-lib/crypto/paillier" "github.com/bnb-chain/tss-lib/crypto/vss" "github.com/bnb-chain/tss-lib/tss" @@ -29,6 +31,8 @@ var ( (*DGRound2Message2)(nil), (*DGRound3Message1)(nil), (*DGRound3Message2)(nil), + (*DGRound4Message1)(nil), + (*DGRound4Message2)(nil), } ) @@ -39,6 +43,7 @@ func NewDGRound1Message( from *tss.PartyID, ecdsaPub *crypto.ECPoint, vct cmt.HashCommitment, + ssid []byte, ) tss.ParsedMessage { meta := tss.MessageRouting{ From: from, @@ -50,6 +55,7 @@ func NewDGRound1Message( EcdsaPubX: ecdsaPub.X().Bytes(), EcdsaPubY: ecdsaPub.Y().Bytes(), VCommitment: vct.Bytes(), + Ssid: ssid, } msg := tss.NewMessageWrapper(meta, content) return tss.NewMessage(meta, content, msg) @@ -73,13 +79,17 @@ func (m *DGRound1Message) UnmarshalVCommitment() *big.Int { return new(big.Int).SetBytes(m.GetVCommitment()) } +func (m *DGRound1Message) UnmarshalSSID() []byte { + return m.GetSsid() +} + // ----- // func NewDGRound2Message1( to []*tss.PartyID, from *tss.PartyID, paillierPK *paillier.PublicKey, - paillierPf paillier.Proof, + modProof *modproof.ProofMod, NTildei, H1i, H2i *big.Int, dlnProof1, dlnProof2 *dlnproof.Proof, ) (tss.ParsedMessage, error) { @@ -89,7 +99,7 @@ func NewDGRound2Message1( IsBroadcast: true, IsToOldCommittee: false, } - paiPfBzs := common.BigIntsToBytes(paillierPf[:]) + modPfBzs := modProof.Bytes() dlnProof1Bz, err := dlnProof1.Serialize() if err != nil { return nil, err @@ -99,13 +109,13 @@ func NewDGRound2Message1( return nil, err } content := &DGRound2Message1{ - PaillierN: paillierPK.N.Bytes(), - PaillierProof: paiPfBzs, - NTilde: NTildei.Bytes(), - H1: H1i.Bytes(), - H2: H2i.Bytes(), - Dlnproof_1: dlnProof1Bz, - Dlnproof_2: dlnProof2Bz, + PaillierN: paillierPK.N.Bytes(), + ModProof: modPfBzs[:], + NTilde: NTildei.Bytes(), + H1: H1i.Bytes(), + H2: H2i.Bytes(), + Dlnproof_1: dlnProof1Bz, + Dlnproof_2: dlnProof2Bz, } msg := tss.NewMessageWrapper(meta, content) return tss.NewMessage(meta, content, msg), nil @@ -113,7 +123,8 @@ func NewDGRound2Message1( func (m *DGRound2Message1) ValidateBasic() bool { return m != nil && - common.NonEmptyMultiBytes(m.PaillierProof) && + // use with NoProofFac() + // common.NonEmptyMultiBytes(m.ModProof, modproof.ProofModBytesParts) && common.NonEmptyBytes(m.PaillierN) && common.NonEmptyBytes(m.NTilde) && common.NonEmptyBytes(m.H1) && @@ -141,11 +152,8 @@ func (m *DGRound2Message1) UnmarshalH2() *big.Int { return new(big.Int).SetBytes(m.GetH2()) } -func (m *DGRound2Message1) UnmarshalPaillierProof() paillier.Proof { - var pf paillier.Proof - ints := common.MultiBytesToBigInts(m.PaillierProof) - copy(pf[:], ints[:paillier.ProofIters]) - return pf +func (m *DGRound2Message1) UnmarshalModProof() (*modproof.ProofMod, error) { + return modproof.NewProofFromBytes(m.GetModProof()) } func (m *DGRound2Message1) UnmarshalDLNProof1() (*dlnproof.Proof, error) { @@ -235,7 +243,7 @@ func (m *DGRound3Message2) UnmarshalVDeCommitment() cmt.HashDeCommitment { // ----- // -func NewDGRound4Message( +func NewDGRound4Message2( to []*tss.PartyID, from *tss.PartyID, ) tss.ParsedMessage { @@ -245,11 +253,40 @@ func NewDGRound4Message( IsBroadcast: true, IsToOldAndNewCommittees: true, } - content := &DGRound4Message{} + content := &DGRound4Message2{} msg := tss.NewMessageWrapper(meta, content) return tss.NewMessage(meta, content, msg) } -func (m *DGRound4Message) ValidateBasic() bool { +func (m *DGRound4Message2) ValidateBasic() bool { return true } + +func NewDGRound4Message1( + to *tss.PartyID, + from *tss.PartyID, + proof *facproof.ProofFac, +) tss.ParsedMessage { + meta := tss.MessageRouting{ + From: from, + To: []*tss.PartyID{to}, + IsBroadcast: false, + IsToOldCommittee: false, + } + pfBzs := proof.Bytes() + content := &DGRound4Message1{ + FacProof: pfBzs[:], + } + msg := tss.NewMessageWrapper(meta, content) + return tss.NewMessage(meta, content, msg) +} + +func (m *DGRound4Message1) ValidateBasic() bool { + return m != nil + // use with NoProofFac() + // && common.NonEmptyMultiBytes(m.GetFacProof(), facproof.ProofFacBytesParts) +} + +func (m *DGRound4Message1) UnmarshalFacProof() (*facproof.ProofFac, error) { + return facproof.NewProofFromBytes(m.GetFacProof()) +} diff --git a/ecdsa/resharing/round_1_old_step_1.go b/ecdsa/resharing/round_1_old_step_1.go index 6358512d..c7d71ea9 100644 --- a/ecdsa/resharing/round_1_old_step_1.go +++ b/ecdsa/resharing/round_1_old_step_1.go @@ -9,6 +9,7 @@ package resharing import ( "errors" "fmt" + "math/big" "github.com/bnb-chain/tss-lib/crypto" "github.com/bnb-chain/tss-lib/crypto/commitments" @@ -38,6 +39,12 @@ func (round *round1) Start() *tss.Error { } round.allOldOK() + round.temp.ssidNonce = new(big.Int).SetUint64(uint64(0)) + ssid, err := round.getSSID() + if err != nil { + return round.WrapError(err) + } + round.temp.ssid = ssid Pi := round.PartyID() i := Pi.Index @@ -69,7 +76,7 @@ func (round *round1) Start() *tss.Error { // 5. "broadcast" C_i to members of the NEW committee r1msg := NewDGRound1Message( round.NewParties().IDs().Exclude(round.PartyID()), round.PartyID(), - round.input.ECDSAPub, vCmt.C) + round.input.ECDSAPub, vCmt.C, ssid) round.temp.dgRound1Messages[i] = r1msg round.out <- r1msg diff --git a/ecdsa/resharing/round_2_new_step_1.go b/ecdsa/resharing/round_2_new_step_1.go index c93c2861..adebda90 100644 --- a/ecdsa/resharing/round_2_new_step_1.go +++ b/ecdsa/resharing/round_2_new_step_1.go @@ -7,13 +7,21 @@ package resharing import ( + "bytes" "errors" + "math/big" + + "github.com/bnb-chain/tss-lib/crypto/modproof" "github.com/bnb-chain/tss-lib/crypto/dlnproof" "github.com/bnb-chain/tss-lib/ecdsa/keygen" "github.com/bnb-chain/tss-lib/tss" ) +var ( + zero = big.NewInt(0) +) + func (round *round2) Start() *tss.Error { if round.started { return round.WrapError(errors.New("round already started")) @@ -30,6 +38,21 @@ func (round *round2) Start() *tss.Error { Pi := round.PartyID() i := Pi.Index + // check consistency of SSID + r1msg := round.temp.dgRound1Messages[0].Content().(*DGRound1Message) + SSID := r1msg.UnmarshalSSID() + for j, Pj := range round.OldParties().IDs() { + if j == 0 || j == i { + continue + } + r1msg := round.temp.dgRound1Messages[j].Content().(*DGRound1Message) + SSIDj := r1msg.UnmarshalSSID() + if !bytes.Equal(SSID, SSIDj) { + return round.WrapError(errors.New("ssid mismatch"), Pj) + } + } + round.temp.ssid = SSID + // 2. "broadcast" "ACK" members of the OLD committee r2msg1 := NewDGRound2Message2( round.OldParties().IDs().Exclude(round.PartyID()), round.PartyID()) @@ -70,10 +93,18 @@ func (round *round2) Start() *tss.Error { dlnProof1 := dlnproof.NewDLNProof(h1i, h2i, alpha, p, q, NTildei) dlnProof2 := dlnproof.NewDLNProof(h2i, h1i, beta, p, q, NTildei) - paillierPf := preParams.PaillierSK.Proof(Pi.KeyInt(), round.save.ECDSAPub) + modProof := &modproof.ProofMod{W: zero, X: *new([80]*big.Int), A: zero, B: zero, Z: *new([80]*big.Int)} + ContextI := append(round.temp.ssid, big.NewInt(int64(i)).Bytes()...) + if !round.Parameters.NoProofMod() { + var err error + modProof, err = modproof.NewProof(ContextI, preParams.PaillierSK.N, preParams.PaillierSK.P, preParams.PaillierSK.Q) + if err != nil { + return round.WrapError(err, Pi) + } + } r2msg2, err := NewDGRound2Message1( round.NewParties().IDs().Exclude(round.PartyID()), round.PartyID(), - &preParams.PaillierSK.PublicKey, paillierPf, preParams.NTildei, preParams.H1i, preParams.H2i, dlnProof1, dlnProof2) + &preParams.PaillierSK.PublicKey, modProof, preParams.NTildei, preParams.H1i, preParams.H2i, dlnProof1, dlnProof2) if err != nil { return round.WrapError(err, Pi) } diff --git a/ecdsa/resharing/round_4_new_step_2.go b/ecdsa/resharing/round_4_new_step_2.go index 9bff552d..55eeb3a1 100644 --- a/ecdsa/resharing/round_4_new_step_2.go +++ b/ecdsa/resharing/round_4_new_step_2.go @@ -12,6 +12,8 @@ import ( "math/big" "sync" + "github.com/bnb-chain/tss-lib/crypto/facproof" + errors2 "github.com/pkg/errors" "github.com/bnb-chain/tss-lib/common" @@ -46,6 +48,7 @@ func (round *round4) Start() *tss.Error { Pi := round.PartyID() i := Pi.Index + round.newOK[i] = true // 1-3. verify paillier & dln proofs, store message pieces, ensure uniqueness of h1j, h2j h1H2Map := make(map[string]struct{}, len(round.temp.dgRound2Message1s)*2) @@ -73,11 +76,20 @@ func (round *round4) Start() *tss.Error { h1H2Map[h1JHex], h1H2Map[h2JHex] = struct{}{}, struct{}{} wg.Add(3) go func(j int, msg tss.ParsedMessage, r2msg1 *DGRound2Message1) { - if ok, err := r2msg1.UnmarshalPaillierProof().Verify(paiPK.N, msg.GetFrom().KeyInt(), round.save.ECDSAPub); err != nil || !ok { + defer wg.Done() + modProof, err := r2msg1.UnmarshalModProof() + if err != nil { + if !round.Parameters.NoProofMod() { + paiProofCulprits[j] = msg.GetFrom() + } + common.Logger.Warningf("modProof verify failed for party %s", msg.GetFrom(), err) + return + } + ContextJ := common.AppendBigIntToBytesSlice(round.temp.ssid, big.NewInt(int64(j))) + if ok := modProof.Verify(ContextJ, paiPK.N); !ok { paiProofCulprits[j] = msg.GetFrom() - common.Logger.Warningf("paillier verify failed for party %s", msg.GetFrom(), err) + common.Logger.Warningf("modProof verify failed for party %s", msg.GetFrom(), err) } - wg.Done() }(j, msg, r2msg1) _j := j _msg := msg @@ -200,16 +212,38 @@ func (round *round4) Start() *tss.Error { round.temp.newKs = newKs round.temp.newBigXjs = newBigXjs + // Send facProof to new parties + for j, Pj := range round.NewParties().IDs() { + if j == i { + continue + } + ContextJ := common.AppendBigIntToBytesSlice(round.temp.ssid, big.NewInt(int64(j))) + facProof := &facproof.ProofFac{P: zero, Q: zero, A: zero, B: zero, T: zero, Sigma: zero, + Z1: zero, Z2: zero, W1: zero, W2: zero, V: zero} + if !round.Parameters.NoProofFac() { + facProof, err = facproof.NewProof(ContextJ, round.EC(), round.save.PaillierSK.N, round.save.NTildej[j], + round.save.H1j[j], round.save.H2j[j], round.save.PaillierSK.P, round.save.PaillierSK.Q) + if err != nil { + return round.WrapError(err, Pi) + } + } + r4msg1 := NewDGRound4Message1(Pj, Pi, facProof) + round.out <- r4msg1 + } + // Send an "ACK" message to both committees to signal that we're ready to save our data - r4msg := NewDGRound4Message(round.OldAndNewParties(), Pi) - round.temp.dgRound4Messages[i] = r4msg - round.out <- r4msg + r4msg2 := NewDGRound4Message2(round.OldAndNewParties(), Pi) + round.temp.dgRound4Message2s[i] = r4msg2 + round.out <- r4msg2 return nil } func (round *round4) CanAccept(msg tss.ParsedMessage) bool { - if _, ok := msg.Content().(*DGRound4Message); ok { + if _, ok := msg.Content().(*DGRound4Message1); ok { + return !msg.IsBroadcast() + } + if _, ok := msg.Content().(*DGRound4Message2); ok { return msg.IsBroadcast() } return false @@ -217,13 +251,19 @@ func (round *round4) CanAccept(msg tss.ParsedMessage) bool { func (round *round4) Update() (bool, *tss.Error) { // accept messages from new -> old&new committees - for j, msg := range round.temp.dgRound4Messages { + for j, msg2 := range round.temp.dgRound4Message2s { if round.newOK[j] { continue } - if msg == nil || !round.CanAccept(msg) { + if msg2 == nil || !round.CanAccept(msg2) { return false, nil } + if round.ReSharingParams().IsNewCommittee() { + msg1 := round.temp.dgRound4Message1s[j] + if msg1 == nil || !round.CanAccept(msg1) { + return false, nil + } + } round.newOK[j] = true } return true, nil diff --git a/ecdsa/resharing/round_5_new_step_3.go b/ecdsa/resharing/round_5_new_step_3.go index 2ce8a448..b821f485 100644 --- a/ecdsa/resharing/round_5_new_step_3.go +++ b/ecdsa/resharing/round_5_new_step_3.go @@ -8,7 +8,9 @@ package resharing import ( "errors" + "math/big" + "github.com/bnb-chain/tss-lib/common" "github.com/bnb-chain/tss-lib/tss" ) @@ -28,6 +30,7 @@ func (round *round5) Start() *tss.Error { if round.IsNewCommittee() { // 21. // for this P: SAVE data + ContextI := append(round.temp.ssid, big.NewInt(int64(i)).Bytes()...) round.save.BigXj = round.temp.newBigXjs round.save.ShareID = round.PartyID().KeyInt() round.save.Xi = round.temp.newXi @@ -41,6 +44,27 @@ func (round *round5) Start() *tss.Error { r2msg1 := msg.Content().(*DGRound2Message1) round.save.PaillierPKs[j] = r2msg1.UnmarshalPaillierPK() } + for j, msg := range round.temp.dgRound4Message1s { + if j == i { + continue + } + r4msg1 := msg.Content().(*DGRound4Message1) + proof, err := r4msg1.UnmarshalFacProof() + if err != nil && round.Parameters.NoProofFac() { + common.Logger.Warningf("facProof verify failed for party %s", msg.GetFrom(), err) + } else { + if err != nil { + common.Logger.Warningf("facProof verify failed for party %s", msg.GetFrom(), err) + return round.WrapError(err, round.NewParties().IDs()[j]) + } + if ok := proof.Verify(ContextI, round.EC(), round.save.PaillierPKs[j].N, round.save.NTildei, + round.save.H1i, round.save.H2i); !ok { + common.Logger.Warningf("facProof verify failed for party %s", msg.GetFrom(), err) + return round.WrapError(err, round.NewParties().IDs()[j]) + } + } + + } } else if round.IsOldCommittee() { round.input.Xi.SetInt64(0) } diff --git a/ecdsa/resharing/rounds.go b/ecdsa/resharing/rounds.go index bcebf453..8dc78a5b 100644 --- a/ecdsa/resharing/rounds.go +++ b/ecdsa/resharing/rounds.go @@ -7,6 +7,11 @@ package resharing import ( + "errors" + "math/big" + + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" "github.com/bnb-chain/tss-lib/ecdsa/keygen" "github.com/bnb-chain/tss-lib/tss" ) @@ -133,3 +138,22 @@ func (round *base) allNewOK() { round.newOK[j] = true } } + +// get ssid from local params +func (round *base) getSSID() ([]byte, error) { + ssidList := []*big.Int{round.EC().Params().P, round.EC().Params().N, round.EC().Params().B, round.EC().Params().Gx, round.EC().Params().Gy} // ec curve + ssidList = append(ssidList, round.Parties().IDs().Keys()...) // parties + BigXjList, err := crypto.FlattenECPoints(round.input.BigXj) + if err != nil { + return nil, round.WrapError(errors.New("read BigXj failed"), round.PartyID()) + } + ssidList = append(ssidList, BigXjList...) // BigXj + ssidList = append(ssidList, round.input.NTildej...) // NTilde + ssidList = append(ssidList, round.input.H1j...) // h1 + ssidList = append(ssidList, round.input.H2j...) // h2 + ssidList = append(ssidList, big.NewInt(int64(round.number))) // round number + ssidList = append(ssidList, round.temp.ssidNonce) + ssid := common.SHA512_256i(ssidList...).Bytes() + + return ssid, nil +} diff --git a/ecdsa/signing/local_party.go b/ecdsa/signing/local_party.go index ae202590..c6575179 100644 --- a/ecdsa/signing/local_party.go +++ b/ecdsa/signing/local_party.go @@ -91,6 +91,9 @@ type ( Ui, Ti *crypto.ECPoint DTelda cmt.HashDeCommitment + + ssidNonce *big.Int + ssid []byte } ) diff --git a/ecdsa/signing/round_1.go b/ecdsa/signing/round_1.go index 920930db..e1b8d0e3 100644 --- a/ecdsa/signing/round_1.go +++ b/ecdsa/signing/round_1.go @@ -45,6 +45,12 @@ func (round *round1) Start() *tss.Error { round.number = 1 round.started = true round.resetOK() + round.temp.ssidNonce = new(big.Int).SetUint64(0) + ssid, err := round.getSSID() + if err != nil { + return round.WrapError(err) + } + round.temp.ssid = ssid k := common.GetRandomPositiveInt(round.Params().EC().Params().N) gamma := common.GetRandomPositiveInt(round.Params().EC().Params().N) diff --git a/ecdsa/signing/round_2.go b/ecdsa/signing/round_2.go index 79702e0d..489d22bd 100644 --- a/ecdsa/signing/round_2.go +++ b/ecdsa/signing/round_2.go @@ -8,6 +8,7 @@ package signing import ( "errors" + "math/big" "sync" errorspkg "github.com/pkg/errors" @@ -30,6 +31,7 @@ func (round *round2) Start() *tss.Error { errChs := make(chan *tss.Error, (len(round.Parties().IDs())-1)*2) wg := sync.WaitGroup{} wg.Add((len(round.Parties().IDs()) - 1) * 2) + ContextI := append(round.temp.ssid, new(big.Int).SetUint64(uint64(i)).Bytes()...) for j, Pj := range round.Parties().IDs() { if j == i { continue @@ -44,6 +46,7 @@ func (round *round2) Start() *tss.Error { return } beta, c1ji, _, pi1ji, err := mta.BobMid( + ContextI, round.Parameters.EC(), round.key.PaillierPKs[j], rangeProofAliceJ, @@ -73,6 +76,7 @@ func (round *round2) Start() *tss.Error { return } v, c2ji, _, pi2ji, err := mta.BobMidWC( + ContextI, round.Parameters.EC(), round.key.PaillierPKs[j], rangeProofAliceJ, diff --git a/ecdsa/signing/round_3.go b/ecdsa/signing/round_3.go index 87c4f8b4..05cc9588 100644 --- a/ecdsa/signing/round_3.go +++ b/ecdsa/signing/round_3.go @@ -38,6 +38,7 @@ func (round *round3) Start() *tss.Error { if j == i { continue } + ContextJ := append(round.temp.ssid, new(big.Int).SetUint64(uint64(j)).Bytes()...) // Alice_end go func(j int, Pj *tss.PartyID) { defer wg.Done() @@ -48,6 +49,7 @@ func (round *round3) Start() *tss.Error { return } alphaIj, err := mta.AliceEnd( + ContextJ, round.Params().EC(), round.key.PaillierPKs[i], proofBob, @@ -72,6 +74,7 @@ func (round *round3) Start() *tss.Error { return } uIj, err := mta.AliceEndWC( + ContextJ, round.Params().EC(), round.key.PaillierPKs[i], proofBobWC, diff --git a/ecdsa/signing/round_4.go b/ecdsa/signing/round_4.go index 9048ff00..afc4b59e 100644 --- a/ecdsa/signing/round_4.go +++ b/ecdsa/signing/round_4.go @@ -41,7 +41,9 @@ func (round *round4) Start() *tss.Error { // compute the multiplicative inverse thelta mod q thetaInverse = modN.ModInverse(thetaInverse) - piGamma, err := schnorr.NewZKProof(round.temp.gamma, round.temp.pointGamma) + i := round.PartyID().Index + ContextI := append(round.temp.ssid, new(big.Int).SetUint64(uint64(i)).Bytes()...) + piGamma, err := schnorr.NewZKProof(ContextI, round.temp.gamma, round.temp.pointGamma) if err != nil { return round.WrapError(errors2.Wrapf(err, "NewZKProof(gamma, bigGamma)")) } diff --git a/ecdsa/signing/round_5.go b/ecdsa/signing/round_5.go index bcaefa5a..0162a778 100644 --- a/ecdsa/signing/round_5.go +++ b/ecdsa/signing/round_5.go @@ -8,6 +8,7 @@ package signing import ( "errors" + "math/big" errors2 "github.com/pkg/errors" @@ -30,6 +31,7 @@ func (round *round5) Start() *tss.Error { if j == round.PartyID().Index { continue } + ContextJ := common.AppendBigIntToBytesSlice(round.temp.ssid, big.NewInt(int64(j))) r1msg2 := round.temp.signRound1Message2s[j].Content().(*SignRound1Message2) r4msg := round.temp.signRound4Messages[j].Content().(*SignRound4Message) SCj, SDj := r1msg2.UnmarshalCommitment(), r4msg.UnmarshalDeCommitment() @@ -46,7 +48,7 @@ func (round *round5) Start() *tss.Error { if err != nil { return round.WrapError(errors.New("failed to unmarshal bigGamma proof"), Pj) } - ok = proof.Verify(bigGammaJPoint) + ok = proof.Verify(ContextJ, bigGammaJPoint) if !ok { return round.WrapError(errors.New("failed to prove bigGamma"), Pj) } diff --git a/ecdsa/signing/round_6.go b/ecdsa/signing/round_6.go index de930654..b104fdd5 100644 --- a/ecdsa/signing/round_6.go +++ b/ecdsa/signing/round_6.go @@ -8,6 +8,7 @@ package signing import ( "errors" + "math/big" errors2 "github.com/pkg/errors" @@ -23,11 +24,13 @@ func (round *round6) Start() *tss.Error { round.started = true round.resetOK() - piAi, err := schnorr.NewZKProof(round.temp.roi, round.temp.bigAi) + i := round.PartyID().Index + ContextI := append(round.temp.ssid, new(big.Int).SetUint64(uint64(i)).Bytes()...) + piAi, err := schnorr.NewZKProof(ContextI, round.temp.roi, round.temp.bigAi) if err != nil { return round.WrapError(errors2.Wrapf(err, "NewZKProof(roi, bigAi)")) } - piV, err := schnorr.NewZKVProof(round.temp.bigVi, round.temp.bigR, round.temp.si, round.temp.li) + piV, err := schnorr.NewZKVProof(ContextI, round.temp.bigVi, round.temp.bigR, round.temp.si, round.temp.li) if err != nil { return round.WrapError(errors2.Wrapf(err, "NewZKVProof(bigVi, bigR, si, li)")) } diff --git a/ecdsa/signing/round_7.go b/ecdsa/signing/round_7.go index 3242b64b..d2314ca1 100644 --- a/ecdsa/signing/round_7.go +++ b/ecdsa/signing/round_7.go @@ -32,6 +32,7 @@ func (round *round7) Start() *tss.Error { if j == round.PartyID().Index { continue } + ContextJ := common.AppendBigIntToBytesSlice(round.temp.ssid, big.NewInt(int64(j))) r5msg := round.temp.signRound5Messages[j].Content().(*SignRound5Message) r6msg := round.temp.signRound6Messages[j].Content().(*SignRound6Message) cj, dj := r5msg.UnmarshalCommitment(), r6msg.UnmarshalDeCommitment() @@ -52,11 +53,11 @@ func (round *round7) Start() *tss.Error { } bigAjs[j] = bigAj pijA, err := r6msg.UnmarshalZKProof(round.Params().EC()) - if err != nil || !pijA.Verify(bigAj) { + if err != nil || !pijA.Verify(ContextJ, bigAj) { return round.WrapError(errors.New("schnorr verify for Aj failed"), Pj) } pijV, err := r6msg.UnmarshalZKVProof(round.Params().EC()) - if err != nil || !pijV.Verify(bigVj, round.temp.bigR) { + if err != nil || !pijV.Verify(ContextJ, bigVj, round.temp.bigR) { return round.WrapError(errors.New("vverify for Vj failed"), Pj) } } diff --git a/ecdsa/signing/rounds.go b/ecdsa/signing/rounds.go index b546b656..5a281b04 100644 --- a/ecdsa/signing/rounds.go +++ b/ecdsa/signing/rounds.go @@ -7,7 +7,11 @@ package signing import ( + "errors" + "math/big" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" "github.com/bnb-chain/tss-lib/ecdsa/keygen" "github.com/bnb-chain/tss-lib/tss" ) @@ -121,3 +125,22 @@ func (round *base) resetOK() { round.ok[j] = false } } + +// get ssid from local params +func (round *base) getSSID() ([]byte, error) { + ssidList := []*big.Int{round.EC().Params().P, round.EC().Params().N, round.EC().Params().B, round.EC().Params().Gx, round.EC().Params().Gy} // ec curve + ssidList = append(ssidList, round.Parties().IDs().Keys()...) // parties + BigXjList, err := crypto.FlattenECPoints(round.key.BigXj) + if err != nil { + return nil, round.WrapError(errors.New("read BigXj failed"), round.PartyID()) + } + ssidList = append(ssidList, BigXjList...) // BigXj + ssidList = append(ssidList, round.key.NTildej...) // NTilde + ssidList = append(ssidList, round.key.H1j...) // h1 + ssidList = append(ssidList, round.key.H2j...) // h2 + ssidList = append(ssidList, big.NewInt(int64(round.number))) // round number + ssidList = append(ssidList, round.temp.ssidNonce) + ssid := common.SHA512_256i(ssidList...).Bytes() + + return ssid, nil +} diff --git a/eddsa/keygen/local_party.go b/eddsa/keygen/local_party.go index 8d94f5d4..39900f2e 100644 --- a/eddsa/keygen/local_party.go +++ b/eddsa/keygen/local_party.go @@ -51,6 +51,9 @@ type ( vs vss.Vs shares vss.Shares deCommitPolyG cmt.HashDeCommitment + + ssid []byte + ssidNonce *big.Int } ) diff --git a/eddsa/keygen/local_party_test.go b/eddsa/keygen/local_party_test.go index 0a5adf1d..fcfae33e 100644 --- a/eddsa/keygen/local_party_test.go +++ b/eddsa/keygen/local_party_test.go @@ -170,7 +170,7 @@ keygen: Y: pkY, } println("u len: ", len(u.Bytes())) - sk, _, err := edwards.PrivKeyFromScalar(u.Bytes()) + sk, _, err := edwards.PrivKeyFromScalar(common.PadToLengthBytesInPlace(u.Bytes(), 32)) if !assert.NoError(t, err) { return } diff --git a/eddsa/keygen/round_1.go b/eddsa/keygen/round_1.go index a799d27c..4608de03 100644 --- a/eddsa/keygen/round_1.go +++ b/eddsa/keygen/round_1.go @@ -38,6 +38,13 @@ func (round *round1) Start() *tss.Error { Pi := round.PartyID() i := Pi.Index + round.temp.ssidNonce = new(big.Int).SetUint64(0) + ssid, err := round.getSSID() + if err != nil { + return round.WrapError(err) + } + round.temp.ssid = ssid + // 1. calculate "partial" key share ui ui := common.GetRandomPositiveInt(round.Params().EC().Params().N) round.temp.ui = ui diff --git a/eddsa/keygen/round_2.go b/eddsa/keygen/round_2.go index 0db0d1b5..0148bcf6 100644 --- a/eddsa/keygen/round_2.go +++ b/eddsa/keygen/round_2.go @@ -8,6 +8,7 @@ package keygen import ( "errors" + "math/big" errors2 "github.com/pkg/errors" @@ -45,7 +46,8 @@ func (round *round2) Start() *tss.Error { } // 5. compute Schnorr prove - pii, err := schnorr.NewZKProof(round.temp.ui, round.temp.vs[0]) + ContextI := append(round.temp.ssid, new(big.Int).SetUint64(uint64(i)).Bytes()...) + pii, err := schnorr.NewZKProof(ContextI, round.temp.ui, round.temp.vs[0]) if err != nil { return round.WrapError(errors2.Wrapf(err, "NewZKProof(ui, vi0)")) } diff --git a/eddsa/keygen/round_3.go b/eddsa/keygen/round_3.go index 7a82f883..393af636 100644 --- a/eddsa/keygen/round_3.go +++ b/eddsa/keygen/round_3.go @@ -65,6 +65,8 @@ func (round *round3) Start() *tss.Error { if j == PIdx { continue } + ContextJ := common.AppendBigIntToBytesSlice(round.temp.ssid, big.NewInt(int64(j))) + // 6-9. go func(j int, ch chan<- vssOut) { // 4-10. @@ -92,7 +94,7 @@ func (round *round3) Start() *tss.Error { ch <- vssOut{errors.New("failed to unmarshal schnorr proof"), nil} return } - ok = proof.Verify(PjVs[0]) + ok = proof.Verify(ContextJ, PjVs[0]) if !ok { ch <- vssOut{errors.New("failed to prove schnorr proof"), nil} return diff --git a/eddsa/keygen/rounds.go b/eddsa/keygen/rounds.go index f87f47a4..153a3b28 100644 --- a/eddsa/keygen/rounds.go +++ b/eddsa/keygen/rounds.go @@ -7,6 +7,9 @@ package keygen import ( + "math/big" + + "github.com/bnb-chain/tss-lib/common" "github.com/bnb-chain/tss-lib/tss" ) @@ -82,3 +85,14 @@ func (round *base) resetOK() { round.ok[j] = false } } + +// get ssid from local params +func (round *base) getSSID() ([]byte, error) { + ssidList := []*big.Int{round.EC().Params().P, round.EC().Params().N, round.EC().Params().Gx, round.EC().Params().Gy} // ec curve + ssidList = append(ssidList, round.Parties().IDs().Keys()...) + ssidList = append(ssidList, big.NewInt(int64(round.number))) // round number + ssidList = append(ssidList, round.temp.ssidNonce) + ssid := common.SHA512_256i(ssidList...).Bytes() + + return ssid, nil +} diff --git a/eddsa/resharing/local_party_test.go b/eddsa/resharing/local_party_test.go index 4aa8f85c..0ef6ea73 100644 --- a/eddsa/resharing/local_party_test.go +++ b/eddsa/resharing/local_party_test.go @@ -44,7 +44,7 @@ func TestE2EConcurrent(t *testing.T) { threshold, newThreshold := testThreshold, testThreshold // PHASE: load keygen fixtures - firstPartyIdx, extraParties := 5, 1 // // extra can be 0 to N-first + firstPartyIdx, extraParties := 1, 1 // // extra can be 0 to N-first oldKeys, oldPIDs, err := keygen.LoadKeygenTestFixtures(testThreshold+1+extraParties+firstPartyIdx, firstPartyIdx) assert.NoError(t, err, "should load keygen fixtures") diff --git a/eddsa/signing/local_party.go b/eddsa/signing/local_party.go index 56aa5f1c..115988a5 100644 --- a/eddsa/signing/local_party.go +++ b/eddsa/signing/local_party.go @@ -59,6 +59,9 @@ type ( // round 3 r *big.Int + + ssid []byte + ssidNonce *big.Int } ) diff --git a/eddsa/signing/round_1.go b/eddsa/signing/round_1.go index 7af1d807..0ece1fcb 100644 --- a/eddsa/signing/round_1.go +++ b/eddsa/signing/round_1.go @@ -9,6 +9,7 @@ package signing import ( "errors" "fmt" + "math/big" "github.com/bnb-chain/tss-lib/common" "github.com/bnb-chain/tss-lib/crypto" @@ -32,6 +33,12 @@ func (round *round1) Start() *tss.Error { round.started = true round.resetOK() + round.temp.ssidNonce = new(big.Int).SetUint64(0) + var err error + round.temp.ssid, err = round.getSSID() + if err != nil { + return round.WrapError(err) + } // 1. select ri ri := common.GetRandomPositiveInt(round.Params().EC().Params().N) diff --git a/eddsa/signing/round_2.go b/eddsa/signing/round_2.go index 6aa89657..027eb519 100644 --- a/eddsa/signing/round_2.go +++ b/eddsa/signing/round_2.go @@ -8,6 +8,7 @@ package signing import ( "errors" + "math/big" errors2 "github.com/pkg/errors" @@ -32,7 +33,8 @@ func (round *round2) Start() *tss.Error { } // 2. compute Schnorr prove - pir, err := schnorr.NewZKProof(round.temp.ri, round.temp.pointRi) + ContextI := append(round.temp.ssid, new(big.Int).SetUint64(uint64(i)).Bytes()...) + pir, err := schnorr.NewZKProof(ContextI, round.temp.ri, round.temp.pointRi) if err != nil { return round.WrapError(errors2.Wrapf(err, "NewZKProof(ri, pointRi)")) } diff --git a/eddsa/signing/round_3.go b/eddsa/signing/round_3.go index cbcd103f..3f636f2c 100644 --- a/eddsa/signing/round_3.go +++ b/eddsa/signing/round_3.go @@ -8,8 +8,10 @@ package signing import ( "crypto/sha512" + "math/big" "github.com/agl/ed25519/edwards25519" + "github.com/bnb-chain/tss-lib/common" "github.com/pkg/errors" "github.com/bnb-chain/tss-lib/crypto" @@ -38,6 +40,7 @@ func (round *round3) Start() *tss.Error { continue } + ContextJ := common.AppendBigIntToBytesSlice(round.temp.ssid, big.NewInt(int64(j))) msg := round.temp.signRound2Messages[j] r2msg := msg.Content().(*SignRound2Message) cmtDeCmt := commitments.HashCommitDecommit{C: round.temp.cjs[j], D: r2msg.UnmarshalDeCommitment()} @@ -58,7 +61,7 @@ func (round *round3) Start() *tss.Error { if err != nil { return round.WrapError(errors.New("failed to unmarshal Rj proof"), Pj) } - ok = proof.Verify(Rj) + ok = proof.Verify(ContextJ, Rj) if !ok { return round.WrapError(errors.New("failed to prove Rj"), Pj) } diff --git a/eddsa/signing/rounds.go b/eddsa/signing/rounds.go index 57adcd8d..841ed087 100644 --- a/eddsa/signing/rounds.go +++ b/eddsa/signing/rounds.go @@ -7,7 +7,11 @@ package signing import ( + "errors" + "math/big" + "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/crypto" "github.com/bnb-chain/tss-lib/eddsa/keygen" "github.com/bnb-chain/tss-lib/tss" ) @@ -97,3 +101,19 @@ func (round *base) resetOK() { round.ok[j] = false } } + +// get ssid from local params +func (round *base) getSSID() ([]byte, error) { + ssidList := []*big.Int{round.EC().Params().P, round.EC().Params().N, round.EC().Params().Gx, round.EC().Params().Gy} // ec curve + ssidList = append(ssidList, round.Parties().IDs().Keys()...) // parties + BigXjList, err := crypto.FlattenECPoints(round.key.BigXj) + if err != nil { + return nil, round.WrapError(errors.New("read BigXj failed"), round.PartyID()) + } + ssidList = append(ssidList, BigXjList...) // BigXj + ssidList = append(ssidList, big.NewInt(int64(round.number))) // round number + ssidList = append(ssidList, round.temp.ssidNonce) + ssid := common.SHA512_256i(ssidList...).Bytes() + + return ssid, nil +} diff --git a/protob/ecdsa-keygen.proto b/protob/ecdsa-keygen.proto index d9ab1865..249da904 100644 --- a/protob/ecdsa-keygen.proto +++ b/protob/ecdsa-keygen.proto @@ -34,6 +34,7 @@ message KGRound2Message1 { */ message KGRound2Message2 { repeated bytes de_commitment = 1; + repeated bytes modProof = 2; } /* diff --git a/protob/ecdsa-resharing.proto b/protob/ecdsa-resharing.proto index deca60bb..d19b7fc7 100644 --- a/protob/ecdsa-resharing.proto +++ b/protob/ecdsa-resharing.proto @@ -15,6 +15,7 @@ message DGRound1Message { bytes ecdsa_pub_x = 1; bytes ecdsa_pub_y = 2; bytes v_commitment = 3; + bytes ssid = 4; } /* @@ -22,7 +23,7 @@ message DGRound1Message { */ message DGRound2Message1 { bytes paillier_n = 1; - repeated bytes paillier_proof = 2; + repeated bytes modProof = 2; bytes n_tilde = 3; bytes h1 = 4; bytes h2 = 5; @@ -53,5 +54,12 @@ message DGRound3Message2 { /* * The Round 4 "ACK" is broadcast to peers of the Old and New Committees from the New Committee in this message. */ -message DGRound4Message { +message DGRound4Message2 { } + +/* + * The Round 4 message to peers of New Committees from the New Committee in this message. + */ +message DGRound4Message1 { + repeated bytes facProof = 1; +} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_0.json b/test/_ecdsa_fixtures/keygen_data_0.json index e7ecc297..42e7d0b8 100644 --- a/test/_ecdsa_fixtures/keygen_data_0.json +++ b/test/_ecdsa_fixtures/keygen_data_0.json @@ -1,317 +1,107 @@ { "PaillierSK": { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377, - "LambdaN": 11177549293474653071315624418665189713993337713857039843622941874160306957967088085364902747849517720743440517302830953051138579651746807742714617420930389650309503693655278241710464997651016210979212033209885929493409146383153599207708708245744784856144466581441743220466219616919761256996911601522586800501681834109899259130011646525157029902225843141562821444912042544682143551822871569167749680057544021618192013193018211969488363602178244099386856873199849559903972108251737064074518638463675191400686085941182304361236989746506734829192715439122617377235049372295864005857003425048565543295239017074742081739098, - "PhiN": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003363668219798518260023293050314059804451686283125642889824085089364287103645743138335499360115088043236384026386036423938976727204356488198773713746399699119807944216503474128149037276927350382801372171882364608722473979493013469658385430878245234754470098744591728011714006850097131086590478034149484163478196, - "P": 138471877344893404159370789990587035229526501822757859715860581451378097821060572065654020167142705751881226541567307795795754556453787479820798906869224173301347040323407967552040744981753930699851014846952012047048644554216519622525433620018996818709915595722104570112100227224200838964291118279693887862239, - "Q": 161441435008996231415312720334784612039135954100605079559541148988213947893215729512294872946103980992641410465139506479495336230229600181181996050980032656040870605910437056126283234350291390341893936504048733352697707355372228187298988223367343157989147855962868420124839578881957433867411743703337191375943 + "N": 26862170591381186117144639121800907711621441110694985906073099493104224258631997616337459884349048315436649598594766212786190249139720542986841637789367089751895746802368064104115662988051298443105665522549043623368088781757399812306242052676963161647378421463432813771675598887217547787422261194939872523185392600641669797286300834348740665304662829760721139573070204170902129262797162145018079946053388917283347495995703735479819366865064178966988962612678607190805087224162314010583832802161588455461100682306289046720947974174001828045869589748392310605782826097558345479795972515955139600004112610785604729710757, + "LambdaN": 13431085295690593058572319560900453855810720555347492953036549746552112129315998808168729942174524157718324799297383106393095124569860271493420818894683544875947873401184032052057831494025649221552832761274521811684044390878699906153121026338481580823689210731716406885837799443608773893711130597469936261592532213858878816794879138507493230952759071143256763914863135847264553077488577664633510002801989144150002815082601970607292530318876745886925922476991203656094267047307176836180759972736598187277189369375666238571075693265319527847455818556610107935217778613614515276483294115793052848151350340343144475494998, + "PhiN": 26862170591381186117144639121800907711621441110694985906073099493104224258631997616337459884349048315436649598594766212786190249139720542986841637789367089751895746802368064104115662988051298443105665522549043623368088781757399812306242052676963161647378421463432813771675598887217547787422261194939872523185064427717757633589758277014986461905518142286513527829726271694529106154977155329267020005603978288300005630165203941214585060637753491773851844953982407312188534094614353672361519945473196374554378738751332477142151386530639055694911637113220215870435557227229030552966588231586105696302700680686288950989996, + "P": 156199992157527515679277851563515941446129352347011319825196067672572313106672920497393870514107469203466250029881858883814872913259387909227911821518374527804663005734804760515923302853633171490096548012329974306537954808287455990519023653082720419807513617030697689651815046731746603871834526414575616974279, + "Q": 171972931754636180863279482190687457698558121860600423518736408700450794713333895253666069935303159779875615800617935381419433314051299283909205837177825350811890123813155577706389553834758909416625395542626595272258632835075316360438928982089374315539755253298617237177569237637287299829577403684740161746483 }, - "NTildei": 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - "H1i": 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - "H2i": 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - "Alpha": 18858838364090642863885976705785917849588095666228659701871743155136601684317810964894679742400230790419638175826964342988428212905959254595173407546805895053786330745340165460694553463541163392377536991660641175897237022612859023055203954969109446792640286924452894451342390343962988697367504009145231720290664180870949856434832856483494341309896125368391263851856768294678821193531548855742172563657367837127288665746010423498741973852504067003546416102179900394146951822904463640296528769107638723235595426905689214122618409344431556974388137036180436296961821145205777209700167884506258887504931650414099345029951, - "Beta": 1395807721020388607680930184209030827500093365700613969502155493249488449992849860280390364865966228533604330447059505111102237787906247502353254717463022142609093764192247298717827205533184352733903234604039825895447596423801220362460844391771945301793470194267343620223914739981523358121417388327197260424941860299940562341703036920419908453786387163801079126606489977202919826930073646290691678464265984379856616991264576575904700336092314398521788720833127622810808359061977538543398585976320757187430217441058126268549625153209958436862012256016152708777056417217721836837172451652818375009579144312797085584221, - "P": 72203355817570341556268501274329294634031812298837400628546986466856169388565955277798327474620112577464264447378774292238887552023136218000748221902896697108397131130407050789391734393692114165353056606118237633402630743076760338865616978169371728122523157624553687814713765504246700845042327860635836894603, - "Q": 85488464383200462261392437232022419586513781844659932053802081982060943846379017848435792404391468978214225030404086996067399126457166485302232651203001726034901523369607803416040071836413188553244533291702824809171117443591934909718462680496629607172987924695332669979894469709968629923052970744899294464599, - "Xi": 80563338872401313102079363462746161154558427022673111549700880302576594075387, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823746, + "NTildei": 25107490776052945575790163886980744121852075793230702092031092910315419013111724585107741342302647097816029689069156500419649067226989207335403141846585589456214707140363806918024254341805807847344462552372749802373561411623464018306841140152736878126807643286464707464144491205717529334857128642937311664356950670200785184493082292988908234459722618881044613550904554507333793627844968327344517418351075665978629614435510466378211576459017353838583039397930178040557511540818370302033808216608330168909665648805527673068950251148153088673193641290377199021831923470431364077200419352774733381328839199321622201645277, + "H1i": 947268510305326446073634507724913447936734171636912400557401318775427643035322780043344044871778218536295489345747992085537349997385753459769909944243608187249295932620582767525243046024431872134558350124222211815956076009495579000118546531817489783543950708796804986346442485595844139040615169351977594594085460608932273701244091036215057114383266995365365226626217411088112095883376367775475107954293975266374705057036496941779873360807750450088301028537780564210964889218799820623451941121168857520561736570209171665676631521362739174866629364755585577716299287494251706261472512421959632149833106509542229972234, + "H2i": 369382535766024782757053511943484023707590301248858510505619543451105355366349475321600848828578055383112252081262740450957242693258711711573898608872557215737850380375149487180022863563616178163440683814662347260503803753150609907077552201623376131096249150783552367189222999632342102603491398593162398739317344334427947844029843540621897547082716967267285286086227255034044222917612280937408214149645699005643727644027239999997789724357422423935120674874708262799420509411969660535187315093553065000790565517535769427338692918882249946664488170641583406635227373502217028982923125561321182147198392699754510926843, + "Alpha": 6669702575802332067051507400723122644839122909837745212967242092483177093666409546803836461769838120342268901353955156661858215357972959560589013601496347059806025103870404243017483236835513779152636288855166974055130846382972514018626781368599584594970808367427466242387093516189696228727421743052639556770083365914732684526264745234552992519722018618668212942788843125095288624719491808726320606573330293693883472896837701226592981135230240346758366425506314368382164046393267850565316732719649541361696315531259629023604214612386322746665953174348707199467021358068970739744717116080568232157794570566194767962193, + "Beta": 4226702103283230409689887623397868172263773072284894957823563643849293193454026723702667572204652313053676186724572803175380434781233229139441124649381910161179586223174332599144926974124401757990737042528978346870480691970515558734832577382199462271326295128038175934801169919909683367743160668157108777692509546415310274417808611190360269418302199996410620600891919468677526911530111335678118505332265820985238717612050499504379017017998849335196637255127847818529939710513362492159636375161860102767812483118583893111980078668274650612227857015281800001652750733997357414494554663009577159114465037019654992649831, + "P": 73458738483859906960505530286009984246470949380903088699714197960661061085155739592774719387578463149575507386969755941321227590452894174208881731929135833875986292699119509529479934647644869851989583450086833987908020203092806374228228193163809755370417640606181205095011955590840300054963158041301552101041, + "Q": 85447597162213295592421685633760432054265215569039633105172607001373470153249654026667908067025680307951469974169784414915998293227135302230856861321307857553984952411841792538464994439156606764727476914663543473228913738927277839435079606623601328422838494376915981928356488990978178935974751052976368228959, + "Xi": 11916527433647828918977250606530964748554479545005979893012447833077873661340, + "ShareID": 59857031556462284717113645237935722663924232558699039874171440941840562677323, "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 + 59857031556462284717113645237935722663924232558699039874171440941840562677323, + 59857031556462284717113645237935722663924232558699039874171440941840562677324, + 59857031556462284717113645237935722663924232558699039874171440941840562677325, + 59857031556462284717113645237935722663924232558699039874171440941840562677326, + 59857031556462284717113645237935722663924232558699039874171440941840562677327 ], "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + 25107490776052945575790163886980744121852075793230702092031092910315419013111724585107741342302647097816029689069156500419649067226989207335403141846585589456214707140363806918024254341805807847344462552372749802373561411623464018306841140152736878126807643286464707464144491205717529334857128642937311664356950670200785184493082292988908234459722618881044613550904554507333793627844968327344517418351075665978629614435510466378211576459017353838583039397930178040557511540818370302033808216608330168909665648805527673068950251148153088673193641290377199021831923470431364077200419352774733381328839199321622201645277, + 25347321253130040165669198464747637594561084543160875890419030859255281770152898118930416834987900972848102624649324216864737441361174703716495863609322476087408028387965233238285802668149470294745292681572931725456001393301305606431470624857854001369500295623909754190673037775702216922020351830224578270444039819022050738946522292544390839130641700344286132805509002888252787493089063466842186838763536749516490621525613122365080892293964923531037888659136998882617232588657938236946761539565880695421135081565601958037809654399412376843665230604400657963765839300124472222517361299084266084873325229770349534163801, + 21292308023632581181198289513256444712308177801737936647775817904740223548406904422170044682275257431431315028868812996459652895591102638516259762883465973519952131280804384814232387700680465986308431924126707276653911414520068641511680988816011871501850341616042836704357314055609697319128691732749390230733118584785117859207288385865822542643892497962395263780902218346962474333143560514409678469862250207440675303576178809488957082804485944446225032956319749038833642485681946267959990181650810435723731755627693490958402541015772649403218387116342415453965710612578891122860080475980560084488514089712934013739781, + 30862742439593241585708940738147962226366718050501165321237842572436669411737554224118298772517486812375362296405238805912443683584456437953738131350045938787466841040220797401584428446174730486886913719857484102733725336155131475996004306581440515141136345274453183481082707684162136893963291137234740111704738897973555849945611157507740799100242851006495725457213328987753002399448999330977114104566617308036743409045315165685308303262653843118404666538923863063081603256452671995759383632696290823794779551389200638930288120410329395673124242908818519519330118489440718827371013019585524024323106350150372893461689, + 22979378405138893589556133897521754683725883868866200124855036635451629318130978502381364148180090802113404290988890710862982965215323041776178270890557477521858892737028622171038670089616608354902721183960978083779850093600290031995183687729693685221986115197995396115379213021683786733329612441286209467155931087319154615773299643384467163395079212511182788668809520330816917834693871112365384301753056859879036141250397887546537837356226101620007886380291232478721279115321079877121757818532329118011682430897866452653899829996834157870634757693124417404439069108796004756126487268680259509658734527559041787231993 ], "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + 947268510305326446073634507724913447936734171636912400557401318775427643035322780043344044871778218536295489345747992085537349997385753459769909944243608187249295932620582767525243046024431872134558350124222211815956076009495579000118546531817489783543950708796804986346442485595844139040615169351977594594085460608932273701244091036215057114383266995365365226626217411088112095883376367775475107954293975266374705057036496941779873360807750450088301028537780564210964889218799820623451941121168857520561736570209171665676631521362739174866629364755585577716299287494251706261472512421959632149833106509542229972234, + 3880611998802971481733631912608098494196262778323132826239497201888814778206565779038508295122457059564658474446013387570155222804192995563846151508944721213706421845709980882611956739258515443677158361364276786837940404625680574358803765552923094221476122072037719326145018613827892918963555625064867923347247217043400958580189757825375746004023039968242295816205605839011845166061436412284630990719600784460170159747697580968014664501419463157750169639809058771175198577548493272625218114926414363501638734650889306046401503137104184980837461670247903219705017626260602184962369771097797399062562513353217770565531, + 10831225843690707396172531846155417775408096606230693395561759792282094678514600816663347869748948927505461627250570771469119140533266318664691242702922064589002187370016461932692821183944924214028723777910582605988927471997349297521445102656640882914313554019001846714781268540993241638422699989309757114468372538565383360692272346876551928106077801669528247179220120217249637229522616724754257258083101113512544707361337883525289735840725085893321825199206160881032044949147621462286088226618153585859120352649591156109044603116965314576319186213041333237791389005373191075396808136402252420638572954706343475908070, + 7379047495513012741768052948709028575585555485999633742902872635999567523931496397934138722681164927896829567152505037328183413349521525062101059035871423959216606865846805649228889409341121623645276995775466833580910793875325853108618331288089921648034916011339650914136927737993536151052450142994995957064434847339676185441357826456108823451579572271337009853306909251138234707237745952438799718674765118984490163866366131359672038740868456547662412411582409607895270049993194846640187000629665900662666631953358892682510778724505052220510687061629914270273761091793976303803161711621832014373503323366016634630406, + 11181628178709225486839172762330742659423724114653226835819397085381257304105257566937592702765853135360490266257083192830870077666275960663723976086310235934350572650480643691450656438652769853018111519504498965737440967647717818784480763727200258889702626069322469743838822112397983393755250519010298110374742466783922925487057158527359106287066137656141433380846258646250390469229071336860949790965072334352962521185854509550842351266605524163986806331802767702307634084162000820507840777885400805512071448246749124225768822589052733208381949931869152348048701648349767479285228581634453249080578720203097097514457 ], "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + 369382535766024782757053511943484023707590301248858510505619543451105355366349475321600848828578055383112252081262740450957242693258711711573898608872557215737850380375149487180022863563616178163440683814662347260503803753150609907077552201623376131096249150783552367189222999632342102603491398593162398739317344334427947844029843540621897547082716967267285286086227255034044222917612280937408214149645699005643727644027239999997789724357422423935120674874708262799420509411969660535187315093553065000790565517535769427338692918882249946664488170641583406635227373502217028982923125561321182147198392699754510926843, + 15969079226966183502382475788401338523488393107499291032002044296474627394217596503568693748659928310923714663501210832583018731196547300812154979725769686288361401778491755680431944887852103221593745623856378860738388368922715577130878948380171217565406616753411777571011139446871620361320986832525400727639941640937364793530207582464684574638726091525574744197708378588020682070096454926012197394347212926657909811288708691651092564968341401161265195710381753419063864921935963903871011102644256286369641306466313805437318014970058871604639507243703932226939038829663830985880788590281053591951619664726739953671018, + 4991965837400033768069871541004261063135140339060316531025599789490182217840042887067892359235887756385798984623237629620830856274859128458536333773291056510054624668039972342087961925191332459597054733496082441434562377800869508105363637144128472861641912914050632826421706717769073047295100882343425757237060029497292934794235607113222710491355298594636899811931946648047811854321545995037508110462735244536402582555614331492107887985617810756386029525697146027973237905139754077084275404126435090136074550061845235250362605148173730041087342012184590101575852114035899339078096801167678750962125251280492197772961, + 23064781826724373162059309790268929175652024853806919970585039362565178134882146726172590403276064143405780341854075186376431326467367967581674319153076910116152907650926195389275015857432169732825486479963071595528043281158690951801576413614814760292960443710324174730418861380180819802157714395735784311928236401433597447641321165573011917942945482934111736905171027083754748263370419119297225245442731766002872688005764140266867116940180286239156118891196076208004108028110204585118322786319227036687507415330523815192275901354672284703528348057050369197376684323825935099945673108591425248965307506340817771591441, + 11624783050789373146135145081851167787144912685550655481254753886486876945039110175782945406523699017594888407389014880101840909734903251718897005090801524812985842948051908677768943122267838594824514706829210878634123695856103833890298708489700110861686115821849284312876390414092087922712380944749991516509300532655840012200292315982914838173353675847647411050340787544373391445319951232858137394531780600427092367231102522845204917484802409447548360146964783744378214393625590646132406343132441415352603518333034984771651345199420810327304168670235976704426708270671344968176457707557409261114405916868900751036145 ], "BigXj": [ { "Curve": "secp256k1", "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 + 95225479287625109140551300097635441933915975782583911515343531112654602880814, + 113745830257261593369068705146261698861441809650110061237310141136031506190085 ] }, { "Curve": "secp256k1", "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 + 19909020077923456087962021369246692987785610885502332606764981730113023110067, + 60076350170225224442893367050676875983156697199114782416705437692213004111433 ] }, { "Curve": "secp256k1", "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 + 15656029217860558075932288367874977299995954233140419375302609508233656030817, + 88293512119423239639079954683198441748713533855873639211876694257553830935691 ] }, { "Curve": "secp256k1", "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 + 15825259379483050804368543653451724857970141958098760943464945060863314262898, + 46510254063758718632499733093297318465018983961512441577134679077369278627011 ] }, { "Curve": "secp256k1", "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 + 101163968142129288084264305494084191253074413300747651525777392366080313581620, + 19458713537429380315587854195885123660811710862685360770347430223563133437479 ] } ], "PaillierPKs": [ { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + "N": 26862170591381186117144639121800907711621441110694985906073099493104224258631997616337459884349048315436649598594766212786190249139720542986841637789367089751895746802368064104115662988051298443105665522549043623368088781757399812306242052676963161647378421463432813771675598887217547787422261194939872523185392600641669797286300834348740665304662829760721139573070204170902129262797162145018079946053388917283347495995703735479819366865064178966988962612678607190805087224162314010583832802161588455461100682306289046720947974174001828045869589748392310605782826097558345479795972515955139600004112610785604729710757 }, { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + "N": 28569426937909813160816852590974326182398707183206563780157489308279811863376093908221211903705518704565348072663191903836343635499091979154072341420741676813730020871016039693403607409462919125031372066954550208350129974140220983698064393340951930706962427015297577648437601064168848334164842111410896962654571826800302294766234904003147622246551178854009373086133349568572584906962173774282191211244583738166117722131851467394725949126097483624199330170392292115956857647929895014719727669500452359666570376448590229755339126098108084513655351630004806845329610086536348250655270492083872210115099541350980087869489 }, { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + "N": 24206147216197161168800749713794253097360175090858672931928135053300720098263302199858364218289609440982336278990382306871237304598903324389321581163067390799950591531027240968685694116269131503639449889176152844762069948482523881916749982047987022468266212702666839762407435492828573898843940379718086699114362935636941751781265771147161683942488081675636897258681038605775448214108367751993197065197897191643383564344845162403884453232776839031251175853763144050201714908798915379664014184087913029794762586324582687266708240565299184055542301695610690632283322864399949456272972805575542427101734659832898527078677 }, { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + "N": 27422133357851370316963785322815189604726575748114057717984837411771756070272482926958898758576215271907291562151935508777240048370919087691109363558754627052939183040039501310348824807217194423462067796268979252972390229592512803802105741520833681021737552492269574490364955499455488503619050939812934483556240372784852668293634144857453177818024665828049715609921864852313661181061967825839048394234894185931968992541576874445544364635775263264674967563604397356712492758200667296917972566268326712277912968541425534456091226445588857731271210711997226828598037017820056231841183710665446107873358077925757871906777 }, { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + "N": 21505960474634451313164479453847246698949068816168543450757887402781638444470085463014709362627652554915905319404707097558936051290374460876928738652082570278593089424429424860613076608894979923762290356343173648507348492292368062802168911752824853129719568062188174453668131066706292448200533705323966142811976260936406546600112652090553738417255733994944221554428167638466246670287061019896463881779810197390238307556892485807795138448959345532929528137209046373349550262355661974463926686395148775662060236988349400478971416621513539908477667503550115870803074998306032371456267566517610267867391193312424397935929 } ], "ECDSAPub": { "Curve": "secp256k1", "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 + 76266489189895419469020567248501927603989841769205411177925179985114092514949, + 17959638069442050620236663888410692330316152082152911789514411031446499229348 ] } } \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_1.json b/test/_ecdsa_fixtures/keygen_data_1.json index cd40b423..3e12a3bf 100644 --- a/test/_ecdsa_fixtures/keygen_data_1.json +++ b/test/_ecdsa_fixtures/keygen_data_1.json @@ -1,317 +1,107 @@ { "PaillierSK": { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633, - "LambdaN": 11149548384683753959909536345964427693394951431382476212824486637166639662173577194891767482894501592632923769491736561113304654428649255652740936202443873307815059847714657568679592977109706651015560214690689655136212937339069634807369601793015618029858099686819476632392323252263171545675309173552804511118866979421829976839783198933240721589632236425883805073524088572685066561873248353382063426537175647605347164785441254273154684838317964316646942530282175152569613324119720579744549643077693243668687563796142806852567297202206874669730679268309651480146932322457484743279008564599284829516306382681861288851074, - "PhiN": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022237733958843659953679566397866481443179264472851767610147048177145370133123746496706764126853074351295210694329570882508546309369676635928633293885060564350305139226648239441159489099286155386487337375127592285613705134594404413749339461358536619302960293864644914969486558017129198569659032612765363722577702148, - "P": 156066655117547640057183351230075495350356142316825067547377754393543605899777443930066910093681837657478671507788811223345523196584148073197438513558182074417709967023704008903516523749705481827574972560536605307636206080536451830747223300432644243815426273822774543186211566220561156431898966285536794218547, - "Q": 142881877955108862679587355347236181918248084143618286682740587960483961744913181178269564084281155215251840517074566855452343874751509878853753580212870817141929571621842255357588173556886625496068995753146264355317764438313808761825030547122983231288256793625449120842634560033161931537758418045974893961939 + "N": 28569426937909813160816852590974326182398707183206563780157489308279811863376093908221211903705518704565348072663191903836343635499091979154072341420741676813730020871016039693403607409462919125031372066954550208350129974140220983698064393340951930706962427015297577648437601064168848334164842111410896962654571826800302294766234904003147622246551178854009373086133349568572584906962173774282191211244583738166117722131851467394725949126097483624199330170392292115956857647929895014719727669500452359666570376448590229755339126098108084513655351630004806845329610086536348250655270492083872210115099541350980087869489, + "LambdaN": 14284713468954906580408426295487163091199353591603281890078744654139905931688046954110605951852759352282674036331595951918171817749545989577036170710370838406865010435508019846701803704731459562515686033477275104175064987070110491849032196670475965353481213507648788824218800532084424167082421055705448481327116571621783280156627266306673613557770132415067791761025356248059645897264585788635046339329639753214021614915782754214179908727166288405568041736300150892127323291788850009844614304509270438683742045888904656839139941936906942558425724970581335889893630058987401037228149733076112847409338010564314966102162, + "PhiN": 28569426937909813160816852590974326182398707183206563780157489308279811863376093908221211903705518704565348072663191903836343635499091979154072341420741676813730020871016039693403607409462919125031372066954550208350129974140220983698064393340951930706962427015297577648437601064168848334164842111410896962654233143243566560313254532613347227115540264830135583522050712496119291794529171577270092678659279506428043229831565508428359817454332576811136083472600301784254646583577700019689228609018540877367484091777809313678279883873813885116851449941162671779787260117974802074456299466152225694818676021128629932204324, + "P": 179696051055123023215556819548680549334277719811328399025475104641756939359631189702474530421876600335876842000086226772970952145746397968678244929383831619212881928505998388309390501861374874325811635591096208662594788934951680613702506047691842619635942634194229436037649059736143528223527514655893104450263, + "Q": 158987505680611429764814570251714581676636304062461165057161967811536173073371007309624002163427631402197650300199732193395179526018508844385001768408158712489329135846196606721108558620536607973274649079684707414464453289342518783101395641150292445906407334367316740161321966195502987072896005566457051214903 }, - "NTildei": 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - "H1i": 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - "H2i": 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - "Alpha": 13374807296206481491319284931462478389081150313034617398934748391838279365678963445052982709178040661712400578194271385041639739779327608437444673092248225889425869931084058794697606137252194936426728486257459599813639550900880213059186814632135388831429773687752862645148877633505409648018487193890709526208885850198888585020481960763849938517862488903130653421409361683089709600158442012444855386481820826403497089571145748850107119386044797645228513219620364496113457026893065701860867477741335749315777762652752034030806884860746042034852060832532514485985063847119794459347519871852244976469331327910669056935723, - "Beta": 3262340784351458104467423909694604400830677971964497353591450595053707634274454986186234679370519978537263799405527898665196081277267534173475752846416889100727717579776456319920757318362222760861605619365780491105556881407714942597509351674663990320683765718171249215990621704915256839730675168973959937063352657479242363095422936144398603651589468345975399151167189765590338576845858724189528604341179745734427902356341935578021378490644411379675798249913325716954390814204951846935735000038628192019773520495940152834178789516649793526167212194647676348596578149160445253010033464451980038205104499023718992088801, - "P": 68068329583407276568729731710165864069486075621928420836903864850732780111932991029209280082807723582403638063419702297869664777253009814409463878784143361757033463050607902767390240950299622220779922279115205795314026972769857896418814576062358987257985895074310733556897802991485567565660699483070324349291, - "Q": 75297785887327266806687312250334164199326086133440153014927547186279363068792919024446621140166053311189422468911880227951923150860829149160772555870121798001068745287177200419011118029053671164451956838524601465082432633845578510193567724149539728288554427812158517690154278784325025566017726692383067465351, - "Xi": 78302203399919507143585939668401747463925907910124666435956801364259335845750, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823747, + "NTildei": 25347321253130040165669198464747637594561084543160875890419030859255281770152898118930416834987900972848102624649324216864737441361174703716495863609322476087408028387965233238285802668149470294745292681572931725456001393301305606431470624857854001369500295623909754190673037775702216922020351830224578270444039819022050738946522292544390839130641700344286132805509002888252787493089063466842186838763536749516490621525613122365080892293964923531037888659136998882617232588657938236946761539565880695421135081565601958037809654399412376843665230604400657963765839300124472222517361299084266084873325229770349534163801, + "H1i": 3880611998802971481733631912608098494196262778323132826239497201888814778206565779038508295122457059564658474446013387570155222804192995563846151508944721213706421845709980882611956739258515443677158361364276786837940404625680574358803765552923094221476122072037719326145018613827892918963555625064867923347247217043400958580189757825375746004023039968242295816205605839011845166061436412284630990719600784460170159747697580968014664501419463157750169639809058771175198577548493272625218114926414363501638734650889306046401503137104184980837461670247903219705017626260602184962369771097797399062562513353217770565531, + "H2i": 15969079226966183502382475788401338523488393107499291032002044296474627394217596503568693748659928310923714663501210832583018731196547300812154979725769686288361401778491755680431944887852103221593745623856378860738388368922715577130878948380171217565406616753411777571011139446871620361320986832525400727639941640937364793530207582464684574638726091525574744197708378588020682070096454926012197394347212926657909811288708691651092564968341401161265195710381753419063864921935963903871011102644256286369641306466313805437318014970058871604639507243703932226939038829663830985880788590281053591951619664726739953671018, + "Alpha": 21491373657758085577916665593069897304698302824435532374383303720077841245117963656613269831569915553635905663061595834031898972929677249621933525501357436617324598304991585720687960909120658023342943471479838820960047997726786932001492921886802008375343827315954282235777792289696889802892898512843614362177443840425280198612137376280284849353811498082367792976318845774884618722716252884964293120442367038395033342390295633797972152438214316402685935216333012823407451764996594240864085421336823764988704967767076102572703398147213022890269868975034087372976874667029882482262817244173861823337136055042053399964749, + "Beta": 3320311752963954234697711283997815118439358938488190680929864725275034450096946665982937070819528081639621271613538490046386233130458063404579138646139919818379405279730584606243356048610802153043772324355846574025657091426070974316058004074522798849624673902006611228323918313017476418442921878743271314304960386902920541720359376856180397105402483065699785280311003389761147901974764578633793149569955286297534816723552552275416622730320317061458505375678230006930629535752265013560395587064530027550698558348295866795214521021305541919346582881078518616476349467229447131285652277977502561612452907061432958990114, + "P": 70809288826622369725825379006387741309025014873650261751266229233883897190933864780171874016638684817324204969639453339585607590221341667270589678303972956528804192252650177939435179917755571202115955733042695654662128941468586251562467087477332554065966906744871985875266426991185100611501333353651522226181, + "Q": 89491511894694159453747430128734210348570662135726367595285167836164539619537914844620100362327593655844333914098578866199805574792984175111800205197419163387659137071854218603937967776465225847192887789659618586209585295171442059952399265568911468803824806178632700690337945305729670474997622116792123325013, + "Xi": 76948082823091852504553670832408291290543297863564249603348941514219073751559, + "ShareID": 59857031556462284717113645237935722663924232558699039874171440941840562677324, "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 + 59857031556462284717113645237935722663924232558699039874171440941840562677323, + 59857031556462284717113645237935722663924232558699039874171440941840562677324, + 59857031556462284717113645237935722663924232558699039874171440941840562677325, + 59857031556462284717113645237935722663924232558699039874171440941840562677326, + 59857031556462284717113645237935722663924232558699039874171440941840562677327 ], "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + 25107490776052945575790163886980744121852075793230702092031092910315419013111724585107741342302647097816029689069156500419649067226989207335403141846585589456214707140363806918024254341805807847344462552372749802373561411623464018306841140152736878126807643286464707464144491205717529334857128642937311664356950670200785184493082292988908234459722618881044613550904554507333793627844968327344517418351075665978629614435510466378211576459017353838583039397930178040557511540818370302033808216608330168909665648805527673068950251148153088673193641290377199021831923470431364077200419352774733381328839199321622201645277, + 25347321253130040165669198464747637594561084543160875890419030859255281770152898118930416834987900972848102624649324216864737441361174703716495863609322476087408028387965233238285802668149470294745292681572931725456001393301305606431470624857854001369500295623909754190673037775702216922020351830224578270444039819022050738946522292544390839130641700344286132805509002888252787493089063466842186838763536749516490621525613122365080892293964923531037888659136998882617232588657938236946761539565880695421135081565601958037809654399412376843665230604400657963765839300124472222517361299084266084873325229770349534163801, + 21292308023632581181198289513256444712308177801737936647775817904740223548406904422170044682275257431431315028868812996459652895591102638516259762883465973519952131280804384814232387700680465986308431924126707276653911414520068641511680988816011871501850341616042836704357314055609697319128691732749390230733118584785117859207288385865822542643892497962395263780902218346962474333143560514409678469862250207440675303576178809488957082804485944446225032956319749038833642485681946267959990181650810435723731755627693490958402541015772649403218387116342415453965710612578891122860080475980560084488514089712934013739781, + 30862742439593241585708940738147962226366718050501165321237842572436669411737554224118298772517486812375362296405238805912443683584456437953738131350045938787466841040220797401584428446174730486886913719857484102733725336155131475996004306581440515141136345274453183481082707684162136893963291137234740111704738897973555849945611157507740799100242851006495725457213328987753002399448999330977114104566617308036743409045315165685308303262653843118404666538923863063081603256452671995759383632696290823794779551389200638930288120410329395673124242908818519519330118489440718827371013019585524024323106350150372893461689, + 22979378405138893589556133897521754683725883868866200124855036635451629318130978502381364148180090802113404290988890710862982965215323041776178270890557477521858892737028622171038670089616608354902721183960978083779850093600290031995183687729693685221986115197995396115379213021683786733329612441286209467155931087319154615773299643384467163395079212511182788668809520330816917834693871112365384301753056859879036141250397887546537837356226101620007886380291232478721279115321079877121757818532329118011682430897866452653899829996834157870634757693124417404439069108796004756126487268680259509658734527559041787231993 ], "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + 947268510305326446073634507724913447936734171636912400557401318775427643035322780043344044871778218536295489345747992085537349997385753459769909944243608187249295932620582767525243046024431872134558350124222211815956076009495579000118546531817489783543950708796804986346442485595844139040615169351977594594085460608932273701244091036215057114383266995365365226626217411088112095883376367775475107954293975266374705057036496941779873360807750450088301028537780564210964889218799820623451941121168857520561736570209171665676631521362739174866629364755585577716299287494251706261472512421959632149833106509542229972234, + 3880611998802971481733631912608098494196262778323132826239497201888814778206565779038508295122457059564658474446013387570155222804192995563846151508944721213706421845709980882611956739258515443677158361364276786837940404625680574358803765552923094221476122072037719326145018613827892918963555625064867923347247217043400958580189757825375746004023039968242295816205605839011845166061436412284630990719600784460170159747697580968014664501419463157750169639809058771175198577548493272625218114926414363501638734650889306046401503137104184980837461670247903219705017626260602184962369771097797399062562513353217770565531, + 10831225843690707396172531846155417775408096606230693395561759792282094678514600816663347869748948927505461627250570771469119140533266318664691242702922064589002187370016461932692821183944924214028723777910582605988927471997349297521445102656640882914313554019001846714781268540993241638422699989309757114468372538565383360692272346876551928106077801669528247179220120217249637229522616724754257258083101113512544707361337883525289735840725085893321825199206160881032044949147621462286088226618153585859120352649591156109044603116965314576319186213041333237791389005373191075396808136402252420638572954706343475908070, + 7379047495513012741768052948709028575585555485999633742902872635999567523931496397934138722681164927896829567152505037328183413349521525062101059035871423959216606865846805649228889409341121623645276995775466833580910793875325853108618331288089921648034916011339650914136927737993536151052450142994995957064434847339676185441357826456108823451579572271337009853306909251138234707237745952438799718674765118984490163866366131359672038740868456547662412411582409607895270049993194846640187000629665900662666631953358892682510778724505052220510687061629914270273761091793976303803161711621832014373503323366016634630406, + 11181628178709225486839172762330742659423724114653226835819397085381257304105257566937592702765853135360490266257083192830870077666275960663723976086310235934350572650480643691450656438652769853018111519504498965737440967647717818784480763727200258889702626069322469743838822112397983393755250519010298110374742466783922925487057158527359106287066137656141433380846258646250390469229071336860949790965072334352962521185854509550842351266605524163986806331802767702307634084162000820507840777885400805512071448246749124225768822589052733208381949931869152348048701648349767479285228581634453249080578720203097097514457 ], "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + 369382535766024782757053511943484023707590301248858510505619543451105355366349475321600848828578055383112252081262740450957242693258711711573898608872557215737850380375149487180022863563616178163440683814662347260503803753150609907077552201623376131096249150783552367189222999632342102603491398593162398739317344334427947844029843540621897547082716967267285286086227255034044222917612280937408214149645699005643727644027239999997789724357422423935120674874708262799420509411969660535187315093553065000790565517535769427338692918882249946664488170641583406635227373502217028982923125561321182147198392699754510926843, + 15969079226966183502382475788401338523488393107499291032002044296474627394217596503568693748659928310923714663501210832583018731196547300812154979725769686288361401778491755680431944887852103221593745623856378860738388368922715577130878948380171217565406616753411777571011139446871620361320986832525400727639941640937364793530207582464684574638726091525574744197708378588020682070096454926012197394347212926657909811288708691651092564968341401161265195710381753419063864921935963903871011102644256286369641306466313805437318014970058871604639507243703932226939038829663830985880788590281053591951619664726739953671018, + 4991965837400033768069871541004261063135140339060316531025599789490182217840042887067892359235887756385798984623237629620830856274859128458536333773291056510054624668039972342087961925191332459597054733496082441434562377800869508105363637144128472861641912914050632826421706717769073047295100882343425757237060029497292934794235607113222710491355298594636899811931946648047811854321545995037508110462735244536402582555614331492107887985617810756386029525697146027973237905139754077084275404126435090136074550061845235250362605148173730041087342012184590101575852114035899339078096801167678750962125251280492197772961, + 23064781826724373162059309790268929175652024853806919970585039362565178134882146726172590403276064143405780341854075186376431326467367967581674319153076910116152907650926195389275015857432169732825486479963071595528043281158690951801576413614814760292960443710324174730418861380180819802157714395735784311928236401433597447641321165573011917942945482934111736905171027083754748263370419119297225245442731766002872688005764140266867116940180286239156118891196076208004108028110204585118322786319227036687507415330523815192275901354672284703528348057050369197376684323825935099945673108591425248965307506340817771591441, + 11624783050789373146135145081851167787144912685550655481254753886486876945039110175782945406523699017594888407389014880101840909734903251718897005090801524812985842948051908677768943122267838594824514706829210878634123695856103833890298708489700110861686115821849284312876390414092087922712380944749991516509300532655840012200292315982914838173353675847647411050340787544373391445319951232858137394531780600427092367231102522845204917484802409447548360146964783744378214393625590646132406343132441415352603518333034984771651345199420810327304168670235976704426708270671344968176457707557409261114405916868900751036145 ], "BigXj": [ { "Curve": "secp256k1", "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 + 95225479287625109140551300097635441933915975782583911515343531112654602880814, + 113745830257261593369068705146261698861441809650110061237310141136031506190085 ] }, { "Curve": "secp256k1", "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 + 19909020077923456087962021369246692987785610885502332606764981730113023110067, + 60076350170225224442893367050676875983156697199114782416705437692213004111433 ] }, { "Curve": "secp256k1", "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 + 15656029217860558075932288367874977299995954233140419375302609508233656030817, + 88293512119423239639079954683198441748713533855873639211876694257553830935691 ] }, { "Curve": "secp256k1", "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 + 15825259379483050804368543653451724857970141958098760943464945060863314262898, + 46510254063758718632499733093297318465018983961512441577134679077369278627011 ] }, { "Curve": "secp256k1", "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 + 101163968142129288084264305494084191253074413300747651525777392366080313581620, + 19458713537429380315587854195885123660811710862685360770347430223563133437479 ] } ], "PaillierPKs": [ { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + "N": 26862170591381186117144639121800907711621441110694985906073099493104224258631997616337459884349048315436649598594766212786190249139720542986841637789367089751895746802368064104115662988051298443105665522549043623368088781757399812306242052676963161647378421463432813771675598887217547787422261194939872523185392600641669797286300834348740665304662829760721139573070204170902129262797162145018079946053388917283347495995703735479819366865064178966988962612678607190805087224162314010583832802161588455461100682306289046720947974174001828045869589748392310605782826097558345479795972515955139600004112610785604729710757 }, { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + "N": 28569426937909813160816852590974326182398707183206563780157489308279811863376093908221211903705518704565348072663191903836343635499091979154072341420741676813730020871016039693403607409462919125031372066954550208350129974140220983698064393340951930706962427015297577648437601064168848334164842111410896962654571826800302294766234904003147622246551178854009373086133349568572584906962173774282191211244583738166117722131851467394725949126097483624199330170392292115956857647929895014719727669500452359666570376448590229755339126098108084513655351630004806845329610086536348250655270492083872210115099541350980087869489 }, { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + "N": 24206147216197161168800749713794253097360175090858672931928135053300720098263302199858364218289609440982336278990382306871237304598903324389321581163067390799950591531027240968685694116269131503639449889176152844762069948482523881916749982047987022468266212702666839762407435492828573898843940379718086699114362935636941751781265771147161683942488081675636897258681038605775448214108367751993197065197897191643383564344845162403884453232776839031251175853763144050201714908798915379664014184087913029794762586324582687266708240565299184055542301695610690632283322864399949456272972805575542427101734659832898527078677 }, { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + "N": 27422133357851370316963785322815189604726575748114057717984837411771756070272482926958898758576215271907291562151935508777240048370919087691109363558754627052939183040039501310348824807217194423462067796268979252972390229592512803802105741520833681021737552492269574490364955499455488503619050939812934483556240372784852668293634144857453177818024665828049715609921864852313661181061967825839048394234894185931968992541576874445544364635775263264674967563604397356712492758200667296917972566268326712277912968541425534456091226445588857731271210711997226828598037017820056231841183710665446107873358077925757871906777 }, { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + "N": 21505960474634451313164479453847246698949068816168543450757887402781638444470085463014709362627652554915905319404707097558936051290374460876928738652082570278593089424429424860613076608894979923762290356343173648507348492292368062802168911752824853129719568062188174453668131066706292448200533705323966142811976260936406546600112652090553738417255733994944221554428167638466246670287061019896463881779810197390238307556892485807795138448959345532929528137209046373349550262355661974463926686395148775662060236988349400478971416621513539908477667503550115870803074998306032371456267566517610267867391193312424397935929 } ], "ECDSAPub": { "Curve": "secp256k1", "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 + 76266489189895419469020567248501927603989841769205411177925179985114092514949, + 17959638069442050620236663888410692330316152082152911789514411031446499229348 ] } } \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_10.json b/test/_ecdsa_fixtures/keygen_data_10.json deleted file mode 100644 index 1e5abafa..00000000 --- a/test/_ecdsa_fixtures/keygen_data_10.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "PaillierSK": { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549, - "LambdaN": 10559514439768905185084241692540705439478051512599538167424294391345345150023548394207440729602735594007032043213462357711437751327865473176050111664726511135981840256815139256834010694978802569135145415249940190814040836538960440114150787662465097894158902009881304111287735932920079160083538974166661095945869899454419861749985547429106424873932571756283203685357077423202401689788426250524392854141010427155489896022656631129442126752823937584779977121949688700521070584664346153316052154232649534890232171705848678161430230436427854196051926654313704231073884428626879596778966702007450935889206615836942968869382, - "PhiN": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191891739798908839723499971094858212849747865143512566407370714154846404803379576852501048785708282020854310979792045313262258884253505647875169559954243899377401042141169328692306632104308465299069780464343411697356322860460872855708392103853308627408462147768857253759193557933404014901871778413231673885937738764, - "P": 153963269202109176063445222306866740891788732045079218149758448829397455580480478085696327631163692138300185305909770677372667306167593209355441368168966448497187505833239315607938123846795169059776243889617098008339334138575246271958012794548418900149338038403351309798013351737260987594206763941950725931823, - "Q": 137169267637559986510256762487858101215008657251668511260073924977301867851125182519123710480678847918939551461406161965631785677555075567285656170731105600049026625862490244203253301351341340954756983292604633858725374568456378192223036372726399443729857731879536670571345635929984845130987208177071434633963 - }, - "NTildei": 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - "H1i": 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - "H2i": 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - "Alpha": 946839773479074066307076396997685009111845793152548972791977312272144495980407596076297574742385251426168856985943739344805722059549085255764557102980360645251930529636068966326495022627715846645110869365630583245215511995790121869468451402665593452218977038873156202916681229006901778861007169667268450278910405040028972239127615443644653830137897255915655417178885012383144316365371000668631333378028960065073535869818941640321292706765552075671453113165815787569692482346129675821571645546453756013233080731188031698864127021994932490208116019371100192548201497236987215876972590081966030925013039998477949194627, - "Beta": 3416537913069250834999479895848888344414593405183129347988787177350973159124801333961351155446226808202118545317737565075770036748384067621894911849289031802475190021422456900138951175306054129820299493950997176560860713116088056087786149500019225080203911475431386699969611254502262610298740301149272372156948589909444717524821013755268388820957801106961452493319658888067245796135779609138878425252815435287398510188140740394170468453948505423324319650639061269292842479209945419066588086615448890140834060256363280533828297420581133991698037722360428321224090888414379332448699830395574811872225607134725753494408, - "P": 86735366901446406581499914754327326820382402082793441330061950282420979360763013417603597157601150632492024501989066092348023847568516571641210825675350310628846463149758030760268830263352755775195726218303135561189926118125479031640557733067349386433291293422160592672441878841381998843308973635639170815481, - "Q": 88088254407932915710152617328349945509170901187536462950210021678523721118183791803492764388690298768045007925963218691928757458399932237624586049563140111220017366802172234996385247972268183927175952278223674973873213596477113216179295156736693281705950055540731345140917002154588473491581687749941249479969, - "Xi": 88112232028702007616855888242615315926957728473082069044604436808371194479747, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823756, - "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 - ], - "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 - ], - "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 - ], - "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 - ], - "BigXj": [ - { - "Curve": "secp256k1", - "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 - ] - } - ], - "PaillierPKs": [ - { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 - }, - { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 - }, - { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 - }, - { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 - }, - { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 - } - ], - "ECDSAPub": { - "Curve": "secp256k1", - "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 - ] - } -} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_11.json b/test/_ecdsa_fixtures/keygen_data_11.json deleted file mode 100644 index ff6a1670..00000000 --- a/test/_ecdsa_fixtures/keygen_data_11.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "PaillierSK": { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741, - "LambdaN": 13825229229686165962797756864182070005489195923727752994146722276698256428943869971685688950304888191317091277454567535184230179103111422111600434138651169091651387976970548430852662448388722967697671756327808056202780300294153564665823318969114476943917421268494324365554716084401054119033267264004321708261351276400586265329704054821392598883935306908041323854611824316404808115702810196719300704837189204521731242994199705339307237483646376036631982236830496434102701458102279895729476048066909296067510436329936268785199232564111809994215935721585242527290645755070343545291469329880779349404500333884217225566366, - "PhiN": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416522702552801172530659408109642785197767870613816082647709223648632809616231405620393438601409674378409043462485988399410678614474967292752073263964473660992868205402916204559791458952096133818592135020872659872537570398465128223619988431871443170485054581291510140687090582938659761558698809000667768434451132732, - "P": 176122555676251184919901014632106238828180802154727549410990125910212279429721351372753676188805299271893969971163213320899621485829431676669345185682875438496080563399599222365438769247997935846428295703743043016242545841109866980745856601961046538241487709114390551054223684067063438898108606782708941546783, - "Q": 156995555471040614367343522695428152176315246958290308654182617847676697609711143053634482718212418285373966840701499487073615751036384273966118999345514827150059106057539649697979132796668752415254558551275311491656668984798685938358785908393972882455205702805522033265708861683800598147688097959201704580227 - }, - "NTildei": 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - "H1i": 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - "H2i": 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - "Alpha": 352801115007853878935640180358810753174918374924371651504824538331072085446014831602324666954319274802400050167724786741566114528832180452267692975989368467101728833677377481265526579226316385705162583395340343446832698631657874819443363547999633784302111060758237597542199584483222105888745719261922492061995034908131973004758514813281740354987497280031229489152583763493018463135155104615300933670658397163970911287535637843747125902795769606632011792335539268986406541941259353510329251431702567610787775975460079539606642628177694846684605949124638274401844829277424276581887797087730833690752617807411290635843, - "Beta": 2516833029253275856386273691020048984824327063953849095381887777057052060773402048042024938746498703392980679332098721666777684085331987440331714849188647242120132978470685047904427468142732234128860836833389465684562692748892404218058241390010793967837141589918016228255485581073135460481449035798264324616707875521026707917165477727303697488196977943308593050469464490444862277741010149626892084772595776844057476961437009302605929780209272914506008878829125620018878686295637406800560168033301115616845813873891608176025667036768001731603069402272875175158383437322508489544695724198707642011078487807364304499314, - "P": 86607304238469267713777646332184075973951144379153857427844355149111371917714534514259692869393992709769881315447416950951142142410523077179355645753540221951536891532214097818585511810329473609601183939983044012073567863322703934009218467562363227364758058398144273686140097200638279043372756744032841599729, - "Q": 77377829071055137814397726184782677655709732456181310600629772867272846123507129641919775704562286993272113242001861134657348593960832975286117752220232507748943391380812519552690932353011810166234405554912325347335023938431590019470259315235076986824383523333387761814642724582689014270091402629267460782039, - "Xi": 17383168732071266711691176975213347962237943866860655739915452494470465616754, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823757, - "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 - ], - "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 - ], - "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 - ], - "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 - ], - "BigXj": [ - { - "Curve": "secp256k1", - "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 - ] - } - ], - "PaillierPKs": [ - { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 - }, - { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 - }, - { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 - }, - { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 - }, - { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 - } - ], - "ECDSAPub": { - "Curve": "secp256k1", - "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 - ] - } -} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_12.json b/test/_ecdsa_fixtures/keygen_data_12.json deleted file mode 100644 index 3710078e..00000000 --- a/test/_ecdsa_fixtures/keygen_data_12.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "PaillierSK": { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201, - "LambdaN": 13560372297189179901497059866955454448520661362805556518802307639034309617379478426539865614096876226729873630249601208856044422692010950958750323728122406377641438901105751174672551886495735423392044724431869786054398547067178747478845461961887796986726141478951002311334737236087586319477863046042893416118147752359242628179575882077331099964682240370000718401433943250432116126653118361121773350295279593976792160285913394352096394520158600216878134006395669943451992187976398760940175832804769824207137430424430094800561481027933552747769245703618894581698102845820031087466097487574364221153629772108246726162466, - "PhiN": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236295504718485256359151764154662199929364480740001436802867886500864232253306236722243546700590559187953584320571826788704192789040317200433756268012791339886903984375952797521880351665609539648414274860848860189601122962055867105495538491407237789163396205691640062174932194975148728442307259544216493452324932, - "P": 158043195018688735296261434664271897670955921384017538955689248082641003786183608504252223169504062537075208639092126077966476528568402321910801598405592726898802413159365663095778291034915012258135138638123868872415535610611225753161218988026556886426684891394893528554194563915487657359185032348326588498167, - "Q": 171603368251137354428969499111198693344979269577278759254610232162892591344695057725918265787139634822141330755187008577262333699164198802408054816038103969723826072935907176310459663423638001008039371001558446750592886061882050110395700901590941081687673214035211115211096748474383440072407442076566848732103 - }, - "NTildei": 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - "H1i": 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - "H2i": 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - "Alpha": 12193753729442278844645185338520815849670570342534619802189276406683299935990393969477969939811157836224382619800388968606462003421006475801071912754705130397700567372674618536974858367683751687483302355335175002664026050014769644093096957486216537666353565495246652695271589957372687452754284573764564113079147936356869690753834786370733417128285124709417599757879166739296020392032582288991110879382577636283287157376108757913542557736655298060081817729099341152531844968921358197453161268262825252238996615024061419707948778169612088445414358459989369649082564891367322692946985834946585301536861744160593962076569, - "Beta": 926947236013740167023200845301692919412960947834619055462806971149231270447780959173851332307390647359807959061358067032558753820407272153282128257125917196648856745689957570672123153361286390445529770803236992126243990085912568668130178025334332132031121219471585483462718256031596493030488547345977443846368200041996872074611242543063836661532128255649473165645905707245533171638733151239989565324186352303606432159172733374002623971811727543451449799250765497289388516804244466655694781301693741645515767301320434313588227852982647572535881021644545953373459878096706522790279729085547045780374773609273032407199, - "P": 84043692381656726027341212419569901303114630513752430957217077102005026040597456915581859210537449518952768670029908465647581424997112779317386660762058207480460057938328319550225869308328078831323643332354307061512316928460858378445049069272200184523092481845829136657329291887553899974547491284737370235143, - "Q": 70363208419849746238378543951650702378629184034194827667942281532557571393347150438086067264921231587404570768196719566200517777070111272231592972022747012510056103064039170077412408306656340218653457134021197831650540376618518194415508459443130185588695325500426430325816835949805830522383189138790176726729, - "Xi": 1533067721075024465818337112662747335106557102850329526391396152484160262333, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823758, - "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 - ], - "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 - ], - "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 - ], - "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 - ], - "BigXj": [ - { - "Curve": "secp256k1", - "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 - ] - } - ], - "PaillierPKs": [ - { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 - }, - { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 - }, - { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 - }, - { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 - }, - { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 - } - ], - "ECDSAPub": { - "Curve": "secp256k1", - "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 - ] - } -} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_13.json b/test/_ecdsa_fixtures/keygen_data_13.json deleted file mode 100644 index 74107a15..00000000 --- a/test/_ecdsa_fixtures/keygen_data_13.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "PaillierSK": { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069, - "LambdaN": 12395776476831177409513973366456288964047673167675070563858771431385120216487415818547190796181014955241420335949618678934566005662089777325325690919552278459137637874020901594697588993625301019733804484378187037790822809778985526851622696633171375306284715171950770063277086422877253350267513510813312831197049543248713959439089667798573515512290311110236815774695587822634359048868313624369548015827037588898484608085991964859901379890701355832655834340535243628848102081230756760511964697015759055572900311741420742257128253574196182366891035532024556063722893512285300102333086375177758193705089160098835270998622, - "PhiN": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394099086497427918878179335597147031024580622220473631549391175645268718097736627248739096031654075177796969216171983929719802759781402711665311668681070487257696204162461513521023929394031518111145800623482841484514256507148392364733782071064049112127445787024570600204666172750355516387410178320197670541997244, - "P": 142573269352184303929005801299762084962796184276462925934286173348949405310258684956533894135591437492257292216022412698240382761648945692657071976251918068814873067588550367812974573765160888691455220770693228101867124434850998049570381207150343945075093813771227825192424626946035176466163150498427934190863, - "Q": 173886402874176175760321077693049971905897884842677367794877241206763564912545391176627498334059098915721891609338519283668583586241563543048342750877591619452254254671179026685466304291039598026858556009401842929868897561572881304442296626863739724944986704135624735208720360878525930567862237063893214374963 - }, - "NTildei": 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - "H1i": 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - "H2i": 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - "Alpha": 18226130440557636441969700351554814682989315411844842313231531840771365790117480540516857426938551425194405756075303539164319774006944904789198966478383447134821109069864475112876804715497920307507838003728810780077437762490597463716072744933060830935689257268776730398059805008557259291949864866148504506276120118127262125733594222838306912479284584337351051248759223518723445584661136024258781811849855323566880926038957923932422147646800860814548668299629761784959024757811666562964311620208044479666101614517898029505908054722568521900473915134646713648988201905481256844000760724089200580201445428748160720932376, - "Beta": 5195352449517435283031136675466498161975313114258736557395772130809394217153545989153494784088662837830279930248009592944808021857898216513095508693024269143484393096897797689653050811783273831333434872098085151593715766488307313857911219234555844051478866347675018534059034263838956044761324199986738667607514013308564438572470756433111776353652906863230866411797122854267636484621188753403188118703552712817594059056479293572022497731015688615773887989106200627671346736467807871745872455903224549877757569651127325876933439216843025564882137769667239174775490931422210735839594207578261230254162051948268465339634, - "P": 82429586843132482613858086754570255561639792751154550221804576533325037853142132732638671988965200979993243802705637930530173959423666938369711997926478405964682360294406975603595754747485779392779691414165763487650082770762147782721454586317185728697123665847413389440827134907378653606198093539852153458329, - "Q": 78217185276669354106248303879749110125294388809884685981222450639574029589037686547652415698150949311311797112132906483817585616040331164711052037091844318702435796775115866275605942541512840791084989505967085105674348640274242821832388864404833274519818750682515450524122664152919476795819608049887642596591, - "Xi": 25371983894581094862153616372322770140461333419695928268984475593197212965018, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823759, - "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 - ], - "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 - ], - "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 - ], - "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 - ], - "BigXj": [ - { - "Curve": "secp256k1", - "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 - ] - } - ], - "PaillierPKs": [ - { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 - }, - { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 - }, - { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 - }, - { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 - }, - { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 - } - ], - "ECDSAPub": { - "Curve": "secp256k1", - "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 - ] - } -} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_14.json b/test/_ecdsa_fixtures/keygen_data_14.json deleted file mode 100644 index 425d25f7..00000000 --- a/test/_ecdsa_fixtures/keygen_data_14.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "PaillierSK": { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637, - "LambdaN": 11624195717913975872698637871728114580734073992478555097110530854229632513624640587328678228058262385081719565388258864638106956099981868841470296521994728065922829784743975515096534590368301826120188130305018576330564725432200146033068742022824236474239950962242613977155077735453837971619554105555616736062748493140549436055626914046020623327117293645857028662360544013710513146129402161728807121667322196267876319504633870004116609471663936480795898595357485162004580889940276130768110464503867896109723385085615160078264096983544351384749546933155776016252743130135428520773030318336772172782468019684500070328398, - "PhiN": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125496986281098872111253828092041246654234587291714057324721088027421026292258804323457614243334644392535752639009267740008233218943327872961591797190714970324009161779880552261536220929007735792219446770171230320156528193967088702769499093866311552032505486260270857041546060636673544345564936039369000140656796, - "P": 144197502023483129663365289978977831989171000475247209614057632504295382583699888192953683988692139952017376877143024517454060840216387106607207553002196893564025543304452008138365539407424963603269611659352336081079109219434416667720602583017384580369344929404096424939124195380447226279038874441143746193019, - "Q": 161226034498446858477201933352274497536963760010458329313759215264081085465244476412203941228172736395293523938252143412761989499962794409055260972279742413204905364752557544075926302350257804648244154678332550252632158480165918179724970083576746070876332644835082015607982339087704549897607740532181440222823 - }, - "NTildei": 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - "H1i": 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - "H2i": 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - "Alpha": 2638264320539823143559554270044355773751280141298427336501406101681728720379161640251025146439186737770839776264974836217540321737257883246017391743902557484055823943107933019636098560879493138682057768457883126801875523572264568170112933050817123053976983469598842260005377785811779140523314324545405390639195403713549073356877391090290996036214688090156753457106708719259997122398114774751767816680800754554783080200673447321024946836467974035763038678012158477679297053057471221050165698519527787851139005262656626312273700629301975402901146968014426072517363729997101895582750340735444785274505304982643678317575, - "Beta": 3089880448434547503020009602359062573794722903098513680756964628755715728943384587436242764551666941800526344345903424932771860901916446435707719960247290747842967596996837303443545100440702659022440347260562966538385187385479043847096685467525354955196600301034682271040460526574891976389021595124420842658481575736674523617564118768122174738755900113578330306462479225682079270566635099095809758354434431807990153615071264051364628012311360481634052984274033725175935929995690314719912838931509750739919529118332048410475375233004964211897589004087455449249216865445629884190727334117066952118522689364304595545924, - "P": 88693333699207299487746391816208249516129262722032680965794997994606588130834173410171061378761343726374240396430680878098148367967496311896087478761897051126756480687563670428176789910568131822774037661646845086586307624849492751694608653222549226582037417559234673534070787895619814410232397008844974798433, - "Q": 86873514800832157077897895711744679366831994217071413133703747834830195364681334048773723033848093167540702362137024603902833936530143712901034697714794495222649191191346249174277011607336024882027660779682207272253209647087915350698743153456410773479710690372611721355900157187574224948140231498557489619111, - "Xi": 80700841368173463003166291959149821840561466926465344681985086367423853605785, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823760, - "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 - ], - "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 - ], - "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 - ], - "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 - ], - "BigXj": [ - { - "Curve": "secp256k1", - "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 - ] - } - ], - "PaillierPKs": [ - { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 - }, - { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 - }, - { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 - }, - { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 - }, - { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 - } - ], - "ECDSAPub": { - "Curve": "secp256k1", - "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 - ] - } -} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_15.json b/test/_ecdsa_fixtures/keygen_data_15.json deleted file mode 100644 index e67f1e90..00000000 --- a/test/_ecdsa_fixtures/keygen_data_15.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "PaillierSK": { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621, - "LambdaN": 13196034524218989818134441033751768749729213869194575484846763901987198865322273804360543413127888844167159582220497459652708879040355233754291801434522913827653933283822669126048993870132276072733407371138994870007901524364755724225427347983841969485860616357623376962140143459030026322745863229448306478599503565732893734065330814598025792310400844458168973319614209305717522016543214845577294902629129315339126731346530277940834085337465598782466118000853092568012114924044992261189818750195371028713454584351231668918876584854713170087159493794525512432231523206849824359550703957104322199229474600614215652314822, - "PhiN": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199007131465787468130661629196051584620801688916337946639228418611435044033086429691154589805258258630678253462693060555881668170674931197564932236001706185136024229848089984522379637500390742057426909168702463337837753169709426340174318987589051024864463046413699648719101407914208644398458949201228431304629644, - "P": 173963486966359480595627188697314925022354468761956805742821970995615049591567876346820032202211086551111966141348282364141635037247129986947404800410701266374621792729232465268728926681597145851638301049446422083692857812090579664239137696758040145517653774800173405802531238540602633219856772036487355849939, - "Q": 151710393420325013777002291123638186207350690634398071398545630469672303205609431290549434997833073016740922383910431849416842055152653265637985690940462243812477565412230133557946609687525892646363655584670221451935145738745877977736862367892952983363013290428433956120284998018394821583463646063863066414039 - }, - "NTildei": 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - "H1i": 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - "H2i": 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - "Alpha": 15420580314398441245306727509189164753602947102749838037093192993607047529425194346616208007542717697172753049105795522869680578225741312890658307479454314768592885256622119478352646160451496638086869505082154366192827548452264529250215544419920954767025811992674367672810057234135716504957468462406158648941595942275070069307407939091799001918047926958756468513578520359638327476193025995696705618495057542278033772115436322507442192945710272322352704161687134483891737905763593671282841895497288818324437494782386689841551983702982508321979316390799618511320008654451499568638962317143767709723567650841374288167878, - "Beta": 4498837478828710520081261525871479065733540738048996010655807918416191772042622885743127679068276633941588359802508566834633603531418895543957467802474630079224788644516533756223879600376334653781868413077313139801342836810583367943196028013593028560490047596158665210633286521059867625858272219750354584245177871633471065299246518508895618876836259405982490280811947170893946865197904073866340303296966040746591880942618960585138375734871533444622497916714118850206859745825089949527383805625439664477818144567644001512052892920191539703811453501167910969760938434742981703835468936248747051352388860339257562202428, - "P": 71934225252179070609504940085028431935143338773492380149548679506148597141160261928059350105296687938419136258141339237515468741494668673688160482188851337323178939541046281088648431201817717656924056636817613558305071136636409879647479224792242906338434571239296439641723226580206259839634739353870532331221, - "Q": 86708665265825782832017549669153590491930876057836772713745168501945948254858818403417914154037038480973244786368932353731737411049951156298254383621709861669541659257334184431987541027123164148979058739852672822431718323710372471627896847166553165846993187015203670086856365448229424657114405711528775434509, - "Xi": 4786587319827744984754879262854854765771989738302643692120783986808025721675, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823761, - "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 - ], - "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 - ], - "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 - ], - "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 - ], - "BigXj": [ - { - "Curve": "secp256k1", - "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 - ] - } - ], - "PaillierPKs": [ - { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 - }, - { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 - }, - { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 - }, - { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 - }, - { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 - } - ], - "ECDSAPub": { - "Curve": "secp256k1", - "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 - ] - } -} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_16.json b/test/_ecdsa_fixtures/keygen_data_16.json deleted file mode 100644 index 87a55f27..00000000 --- a/test/_ecdsa_fixtures/keygen_data_16.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "PaillierSK": { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401, - "LambdaN": 10271586066370437271725377114743947051102561021978488658226656766690714606285339219453318659973001764760027497970033050493466864012294337595726054732765722411386882966620693730535068959622514377787990660072402926249244760476782739398914065141681863323133287971114432870984617102048891906357022849948157467647356406395094805557742885641113639067988892114840885451129062265825516897313981909292306758658142273501066846695208541990201016924392663581890723381755065422103040700311275784852941191027026858611478910381064718846973186985500719976495990064816477162813015135194515118615227870698046901360812408562761553229386, - "PhiN": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294712812790189611115485771282227278135977784229681770902258124531651033794627963818584613517316284547002133693390417083980402033848785327163781446763510130844206081400622551569705882382054053717222957820762129437693946373971001439952991980129632954325626030270389030237230455741396093802721624817125523106458772, - "P": 150011624422030556473925686611115433785438417287200294839817289418304420977866896640099062742553926543995388062196242250283095813407094110061476824745342126340956323071511973207799168009259089966362509196169507101404878471696108760390593116081196020289204972912521560121660034115669812050639541527235232332047, - "Q": 136943868262811271310578855419780533576981234059557891325731202349340717172596686389682245990856528824389221968274967299974704042664411954108885571081901518402927587566370844609396108465311787083444501788446291316696835355507171221840716916272356022545434615514406370495583239811341029133312819708154868548583 - }, - "NTildei": 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - "H1i": 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - "H2i": 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - "Alpha": 20783840283535573698291503389518005050163776617154709190217898605050642014135517566538311995479665674389178759593545073911962138964240951118262684626727742670770131323368775175927759546689363637975140858370655234388131238048094691356953642253154048860002355458748499174904883278703907412814947967667507358768174746453492965875264938447869506916303919329369003516970513311634856804069032792057910844337685429969228560292197666847735721344819629398092073092849796710992475746864300712111149234011046495914646257450506463600377236410875670120566863773920898121096485214334991656832787199091377698811790632873030415312232, - "Beta": 2419455624610852142499594222078474338690845601116450235339936109759579552292480104678272222442397002662862877348178336039527065657929698709682038445454766077946227004562918685482065602846635182392809231389826033027242665251821402073093685082558907856626522974610863855727365583558110311741950896063076750122318461657545113719036634187629608148655458461203873368167939507679403943244632082650539306656207719160633443556563977068027577255122170973017796651060755149834169368046500776522870049783380776869410484536928371991013182648862982687617381144290723882747765848766920487146065607523034282723711211434882132948893, - "P": 73187435189368830941953555529244843135866979851383866443887726377445109304641772177499651891772481645174816364744104938451451551189650397669484714867861251976848287355738753418610718179638181790604800301814251181645703800520077186471062562933646875662035169313319401914375043756128098077318050412081120416199, - "Q": 79268964874792987913490425022472188108469567053019988675405419995478794668561168184383551893908783070187783699183559196992768346107488578287450972805721981553410958484523035989805573723869573748850905514303937057550085697247581799932131348346587688571426958154547408406258437829257713887447904036084784147449, - "Xi": 19687808486475123850655441993547402391583968621302567073855668480775039308510, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823762, - "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 - ], - "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 - ], - "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 - ], - "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 - ], - "BigXj": [ - { - "Curve": "secp256k1", - "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 - ] - } - ], - "PaillierPKs": [ - { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 - }, - { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 - }, - { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 - }, - { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 - }, - { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 - } - ], - "ECDSAPub": { - "Curve": "secp256k1", - "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 - ] - } -} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_17.json b/test/_ecdsa_fixtures/keygen_data_17.json deleted file mode 100644 index 7fe0e5e1..00000000 --- a/test/_ecdsa_fixtures/keygen_data_17.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "PaillierSK": { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317, - "LambdaN": 15104836735285611461634361337547036531640914049538064385236512208935195388537187135952960778434011113770757307696325643957237420819814150111702653580900971680063392646904402758213623672455901367435403515006488031233297518277547537695416396185368111488079946828766386454686957287271479813545954445461531643191522851423773197012285237374346117874669928465460473350792229513466662700922540077230168157021459653715224531779563582909445653786136151530431541842982604399704879845526501356759355300881993112635197021011926796286388792845989567045904302651631044726838391550200686456357680313779590930375329126559123346164998, - "PhiN": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383045702847546394024570474748692235749339856930920946701584459026933325401845080154460336314042919307430449063559127165818891307572272303060863083685965208799409759691053002713518710601763986225270394042023853592572777585691979134091808605303262089453676783100401372912715360627559181860750658253118246692329996, - "P": 179734247837779647151576586204828344451917901692492772613860066396341781781993657419662179267954120799669649014202908480482306365445803974354583255461341456957765642329865606715761624409381693214374709178213610336224312814862544706373868289306145604074818945766385662896993529308471398207356690508321590870063, - "Q": 168079672260554185889064324312662546220820533213622825995213310874366375692142573529256222421491656535100509856196598207071830435950605243011211731169380408301519896333510870686411783315757159048513809863728470093200283073494625616340305453286392453812244244501670019615296475655515616145900730231202636417259 - }, - "NTildei": 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - "H1i": 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - "H2i": 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - "Alpha": 7122091636472569113597014331742060397581154763138797230648793107658449469377335768282079773828205740201114900190941243477959359946803513936374624462213831860150457840441053834108071108468265343192572700711160213389370319407333746970785328258022761648331307393263431984512106387952236190377952686481153431260974831287329282436911627603261500447258994877576414647324962083961442025328499385034334197046616124020497112741468261404079431876420155230037260226816539611472133199759700401083666676441262466375908373534017041941497292558326836744482958303585635531651412497248362007744289013026535554741137605081331950332187, - "Beta": 4249610197822107702982157697854822924345509901168095579921048200343804180251730160316574371971107022303501717930561045030876864163983385275525437059733602527858386887245346637604317079817598745607289630842189092890774899602213500057221356523065092074801902557562523658129755453739902809651676955391185415411824631570325214616144591493619422760408816541685123270203020128898391015003156779402154396429675576761266741589612146913997731698646713423038779447721369333187791266877324518011254497233814843049245319934265885328423085141380995674818446795856508792712843108509385783149852768615899178488157306663059842194544, - "P": 88932321278914023661384775648920661642713531067726306054457961762018204109783429678071822340587070159380972392249157578976033594552849026891795292117086891444838028167835874327639484056033783821783257312454638153068319913624632146776227339568748513418069948638737881540942027836133986937137531974150175567011, - "Q": 89171444621238377949914603115527895748028497386795498638412184988204971194580839893527592892162449727375464449277622811980888020566654549911306740541193145844584911502436072318129833793095520537455996855843070885795934627015760604712622844328263274668750487984516378562384389140759311336821743134172663379271, - "Xi": 52059195354625909779974595615245517209287218581772824814773649151635609845170, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823763, - "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 - ], - "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 - ], - "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 - ], - "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 - ], - "BigXj": [ - { - "Curve": "secp256k1", - "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 - ] - } - ], - "PaillierPKs": [ - { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 - }, - { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 - }, - { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 - }, - { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 - }, - { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 - } - ], - "ECDSAPub": { - "Curve": "secp256k1", - "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 - ] - } -} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_18.json b/test/_ecdsa_fixtures/keygen_data_18.json deleted file mode 100644 index c01e628f..00000000 --- a/test/_ecdsa_fixtures/keygen_data_18.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "PaillierSK": { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477, - "LambdaN": 11960101940433658514312734579411836203061111288513661814184471079854661870090743775980151441604848245806634287850388321958175363496070422452501302812621419983046956562091770402142418650043872720789813785445465637116583908793085990769201141981903674925835529614697358633082254647125980147065095297728352849426255131820516643665947514347250300109424144259949454213644301602506559045784174265123340809035578567974880109487187126610031306745683215130512517477395186960108337947044628136961121254999436830135374117835295989233358944515413860018731597426204738557642153410360820417515267278829452423702627344890881783250798, - "PhiN": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852510263641033287331895028694500600218848288519898908427288603205013118091568348530246681618071157135949760218974374253220062613491366430261025034954790373920216675894089256273922242509998873660270748235670591978466717889030827720037463194852409477115284306820721640835030534557658904847405254689781763566501596, - "P": 172143097441340375982964097094139140105824040208225528806306402548748948582397627874409667749740109165060051811839703141164649865656164998167604469717770450415719763100619641544799335571396544721974179384743560563878286037409796755506949012050695093543231038460487535104382008036129404330231077234879784420443, - "Q": 138955347245441458686426451942428321648432995860700023510140538952435717179411219753573367191271134448761240918428608850534417426752435803976228608245984610377152093194497344530899514451986597349016012168998149914937899201780394533115897421841116334657177000130019022125864833371826971586880920416443426494439 - }, - "NTildei": 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - "H1i": 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - "H2i": 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - "Alpha": 2137785805261969521080863830240263138026311479569778308769917553108608869471656964186104479754823109865575325352074819565461427427162968086734695799175343517984887187670324167703992567888569244426534266079117751424723869846888379125550490730106331309243875035896994756426297789290665374093138543997552682562413833014334552348785235446964193709451900276357173329343356549882383230429870259899498294725581491906072206092054529537247982002696228306365613685067661957009842025565607900180464791164894322395811692271033201040731519350916367822418451659631917551727447478905816231435645782900401369349246592675241777561191, - "Beta": 3649054014478949635887825370244056951020240666482543604514645089211029017180321196725272940317196988986404501322973076011735488346928020640283190213767461909772356361521389352409689197142749667066630640300357401907142265387043781765401922660420499760792528853060113968459277338846502650385811179806534225100324117526671840405165312540315754483318632754254559943914326590712721820061783764434138284972703819756256545776288341099909135799487333278079331247659890001104557788891804165961444451838260348773787101706100193238100158279400490295182536932855555286303637029962019923390653014815324808589442152487127729847385, - "P": 70741886779831681798301296173390239770249188509333731184832559481324914416423531896205775649962039039183878512056673407306354399539875133703270240072238245972331679369383355204882724555094144641945711503204828560887188061370306763254165357772916101402598732058849642197244603624509347182748772549591890735731, - "Q": 86730553252747925644032729607190891575330794310418705214735929575127290411017284698273066715643993904933867172319421440856469699132729915328721195996324802524240076277934226242391629617402634351204436434265472178370600613236507927403325375703891228624954776429036087552444085034034711877785745258969830210619, - "Xi": 66917848722464180857045954391608827253767745318889839815155978795924230812801, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823764, - "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 - ], - "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 - ], - "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 - ], - "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 - ], - "BigXj": [ - { - "Curve": "secp256k1", - "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 - ] - } - ], - "PaillierPKs": [ - { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 - }, - { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 - }, - { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 - }, - { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 - }, - { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 - } - ], - "ECDSAPub": { - "Curve": "secp256k1", - "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 - ] - } -} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_19.json b/test/_ecdsa_fixtures/keygen_data_19.json deleted file mode 100644 index 9253892a..00000000 --- a/test/_ecdsa_fixtures/keygen_data_19.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "PaillierSK": { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481, - "LambdaN": 12199939260307929899180871284567772426428628703826323240709862580496169828673257881374229061657654578034999296113290409893016998132217853008082866488957290006290015570037987112047955551973860964959034860114512979686445874475465024456764748555814739374676215422429662643621897495817255737964490942110602691767574119753356502771020252378972828234985255892555472532572969543997949991463014474503650425681034296018612802802296258840752101206297937194925050198715061670579708278699392642452601925293095559222749233365987933766126097723090833770770632471501172071838301177752773324047047364176116438982650190017987451104866, - "PhiN": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535148239506713005542040504757945656469970511785110945065145939087995899982926028949007300851362068592037225605604592517681504202412595874389850100397430123341159416557398785284905203850586191118445498466731975867532252195446181667541541264943002344143676602355505546648094094728352232877965300380035974902209732, - "P": 179463655877339414402570685173525468729507741515698171173866996577080236594979569791618029915229613864523199871748007451395258699646530880514429016731933807006461113616852938742461419680561075980787617727949473477021379689215002743574780148010199266503607275848960202227853318236135719576490935517452999687887, - "Q": 135959999261871679052659999969548410900381694679498492599111793650853058320602844830175281603479391057356229753837250892884537488650190161276055906492426210537123327616756510398299374746329408495487443520407282479543946876472415159732298817046562442830051817971009858778363523555434208005521025466209316182863 - }, - "NTildei": 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261, - "H1i": 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611, - "H2i": 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245, - "Alpha": 13141963948423207748620169472732018090806613449190971026374744883466614203228177384715606202260681004765257697803109583877474314586001806432358361281022780440134182198395844832501985672137438196896929481372762298904764202726250741382010667977139719108802476583077377508105237739588427975942683839354319131129811334325780590894188120941526918583326785225987431311907575672984160424202200674795076754945322041047757982042130320240480776345183679957410907352968971761395258600533815297720672458167533385012851843497426080569558030186746572445628187053355111095752496765338408985078962331859803848230391439619727895201347, - "Beta": 5205862007939260519583011312440043367846228677763348788639835093034509360962562698158219119023302190173509496854946229071686754245495201424361935510369979202368967881426510836996257080903572004178584714268729790599864366901972552163916314652650097828605714569026347712692961952748186952993478054800001023794971810257922030411425790160803983720074553508667271166728339020715710294364494692780455046040374572926911428286224512411003705626548793357539507697834012658235211044927038669762025111861952436681126034153717792713158171887068469282519145268526006927638169373025653832158551337820373026541821651057667926057531, - "P": 85974176996041459058062789522134099603291939482171809890184786218991185289967225117231985286551773957176810217489547521735750940894698051004372370654498447261487943204233198110493147789969306434351268942265833775257235225790204199425590908287802651282760686866533788511178263436228606707363504844498843388009, - "Q": 70720889776646264252437140054703973165063676936978521255947975537693570661483087519283346911322165212616411533570750666701422144524618367870047994957950267081545362891879154729821288410485432765099389121506218653689578437534746155100286699324825951598156736331167799726577703210684114702114981592945514480059, - "Xi": 85887044664797207661750386228819779878410857922662804104241227669513422581457, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823765, - "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 - ], - "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 - ], - "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 - ], - "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 - ], - "BigXj": [ - { - "Curve": "secp256k1", - "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 - ] - } - ], - "PaillierPKs": [ - { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 - }, - { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 - }, - { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 - }, - { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 - }, - { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 - } - ], - "ECDSAPub": { - "Curve": "secp256k1", - "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 - ] - } -} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_2.json b/test/_ecdsa_fixtures/keygen_data_2.json index d5c4fbf3..6f204be5 100644 --- a/test/_ecdsa_fixtures/keygen_data_2.json +++ b/test/_ecdsa_fixtures/keygen_data_2.json @@ -1,317 +1,107 @@ { "PaillierSK": { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321, - "LambdaN": 11678627465133579858659765278879796492926540056176395297621857035958171984619066708628914564894655118080616752285983946455917120876456167997171897466499678991098611658964664303893166948125566189367581980240686232183857722870967524192706415592903909395168385822334210682482974965975360918911567901932650815529537030546979941196543136544618429862455039532938898181684114997338610639436418459628989504257122235823437623338615415001033950751972773280628709342241131667829917187797143670886211556896875270442672503526647650374189653375656891592615164229349032351677182015708584469263713904809924742874398330488537281918906, - "PhiN": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059074061093959882393086273089236859724910079065877796363368229994677221278872836919257979008514244471646875246677230830002067901503945546561257418684482263335659834375594287341772423113793750540885345007053295300748379306751313783185230328458698064703354364031417168938527427809619849485748796660977074563837812, - "P": 171108560411106966740159587972212817949821146896473247018285762084885743545836529416720098092771210258718913635529683092881922320381867484657330555633254211891650981554645789386862291989724935419530073847084558627817006521409238020982167490444742578169979944017118661642133401574390509315633740684413314253807, - "Q": 136505472748697136321941672152053382856715733279141729049424238926999467564688659634348103888403200796416607208472532238221520437104803943752953993781183390207865300706893941714626085192215837533600050356276515136164835830621905479660380885561279639437930543387881751310612145174160588140962891726273304311703 + "N": 24206147216197161168800749713794253097360175090858672931928135053300720098263302199858364218289609440982336278990382306871237304598903324389321581163067390799950591531027240968685694116269131503639449889176152844762069948482523881916749982047987022468266212702666839762407435492828573898843940379718086699114362935636941751781265771147161683942488081675636897258681038605775448214108367751993197065197897191643383564344845162403884453232776839031251175853763144050201714908798915379664014184087913029794762586324582687266708240565299184055542301695610690632283322864399949456272972805575542427101734659832898527078677, + "LambdaN": 12103073608098580584400374856897126548680087545429336465964067526650360049131651099929182109144804720491168139495191153435618652299451662194660790581533695399975295765513620484342847058134565751819724944588076422381034974241261940958374991023993511234133106351333419881203717746414286949421970189859043349557024310086219410477072748318487742739042777792072287595135146879759069811629897245323954026052320936771957200007617646395169281432170783039473463063929011840852856768971615621594157956524540453364109564204089902134439307707012750590999769391124192112406139571469549041961432228411468903953868707176804446220918, + "PhiN": 24206147216197161168800749713794253097360175090858672931928135053300720098263302199858364218289609440982336278990382306871237304598903324389321581163067390799950591531027240968685694116269131503639449889176152844762069948482523881916749982047987022468266212702666839762407435492828573898843940379718086699114048620172438820954145496636975485478085555584144575190270293759518139623259794490647908052104641873543914400015235292790338562864341566078946926127858023681705713537943231243188315913049080906728219128408179804268878615414025501181999538782248384224812279142939098083922864456822937807907737414353608892441836, + "P": 179347946090591232979004413467496114724106046225268285989836604667382648146344194469177416555876441903499128428642839375190430980577227664241391921790897322284182306801422645287586317496796904441090376224911593079648968209876923078326921963018765802933604070645734447691803536882758254809782260398835871487663, + "Q": 134967518412339594141270096718702349678420045267053782420908241589925942702229066876111596537378876195970035900967030238355459387858045288062857804114223046211819064054261491188111953542035218625453081691491289918180656941396759795215840950343540604537439650815116924658304811869846364384214985080453763149179 }, - "NTildei": 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - "H1i": 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - "H2i": 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - "Alpha": 23468209328694009585155952272221340023995785118892060682566238438599308944868184912159929599771392250347228113721572062118409892036282210397904498382111549264090065254092348900894600195663847172442494518815904494556705647098298541423310629029095565696559067614006995580006421793374635266458867392874123404127554654832288882739351687182854007432760543996520073856331581033467348806236388233492398507861572619202826691265593849334837848566384000074460167819398534928140272891692555989525939368986751969834700894622895022481087307818137541123624108147046685063000515282905657846621837427787676791766405649393159566559593, - "Beta": 5363635081467873162064043227523535570206684016852830485129062339273929287988284629426514979725313641878920771829219087224532126455279228065521372796191644933554049978926309768822884963553210990712082779272007566558023418810957833750292246314187425333242188758590546687698349534344536161557966858447144017883299715633989278193595814304133939220102860522772662697179469629664076704650580454803931764618193753305719217344459946283613928503112870845846574014830295595024124225760555987912565957729674405732576231733751015377311962582606584811122918561694780062459420948623596824230034681917090359450531137894796829213345, - "P": 79376840563875094020699166601914843824438909888678113013973865254319415099802404431707944576877652477793599811805542748980069676615350518949558353581671743854686018412523889350247259397798322574340519481740461560714215307932674077222852125752627069022339532535310937150551203768460853854317294820082096988319, - "Q": 76154814593070794174301857434758165063011469376954366866576419762376393233059485634267296862668074321152369349037271339832267347238011179361730299336781620981835670325103145354564415751127453839923595265287535393568357127796340004353278243354027817876846162296723667214281090592379842456203474015865962454381, - "Xi": 10419987184031429241207604868190115161627206656902331668805889640860612069994, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823748, + "NTildei": 21292308023632581181198289513256444712308177801737936647775817904740223548406904422170044682275257431431315028868812996459652895591102638516259762883465973519952131280804384814232387700680465986308431924126707276653911414520068641511680988816011871501850341616042836704357314055609697319128691732749390230733118584785117859207288385865822542643892497962395263780902218346962474333143560514409678469862250207440675303576178809488957082804485944446225032956319749038833642485681946267959990181650810435723731755627693490958402541015772649403218387116342415453965710612578891122860080475980560084488514089712934013739781, + "H1i": 10831225843690707396172531846155417775408096606230693395561759792282094678514600816663347869748948927505461627250570771469119140533266318664691242702922064589002187370016461932692821183944924214028723777910582605988927471997349297521445102656640882914313554019001846714781268540993241638422699989309757114468372538565383360692272346876551928106077801669528247179220120217249637229522616724754257258083101113512544707361337883525289735840725085893321825199206160881032044949147621462286088226618153585859120352649591156109044603116965314576319186213041333237791389005373191075396808136402252420638572954706343475908070, + "H2i": 4991965837400033768069871541004261063135140339060316531025599789490182217840042887067892359235887756385798984623237629620830856274859128458536333773291056510054624668039972342087961925191332459597054733496082441434562377800869508105363637144128472861641912914050632826421706717769073047295100882343425757237060029497292934794235607113222710491355298594636899811931946648047811854321545995037508110462735244536402582555614331492107887985617810756386029525697146027973237905139754077084275404126435090136074550061845235250362605148173730041087342012184590101575852114035899339078096801167678750962125251280492197772961, + "Alpha": 12467492105857811088598302265413624870073963876683904115549792420718244667761381421662233615179766169159301747248171001794324121204205514721429411527556422474730559769416341734269127480499195450639280845254825411204958752546880935506192531533720763834591807162931020700005834118949784903275082231197821697666438147146351494072123177022074937176886845914902073137041551203992966070392159928400957103356072574222408552466272801416682546062655619490834257111523501863902732635107221589080095740033399178826436203367881462984740273038927833790029236756977691739321073706751435418243818216736984796273413201551593241377745, + "Beta": 3092900433075562857730870820153450098596803035900780910921649947445993103830332321974327778125342409105586526032316509076255129195987441893584663089182631340709377726700826265326534446647512383669109999128575227820698317763796087420267115770338098171394186245601090936193819697220860084235631876618972161796183290283437286083205410206306343632327839214997496752240852724669373936278550652726231441900252091569385961205860343319878986257063348059860099745005755756686589281908205169093609472515987160341040392705054879831617033293887998222621876114828567467692369732362792302927316059137471591649253327901378732843111, + "P": 74729784971772398429529650577831893381748271883890759436992442977820668409070982447343050413507330989104807520612734716141235130908592245155908358608877871002264282164414418683122667727977065469038707348970011499327641988120347830292987877895400315533431826053732774970762953513006237872470250023861544322019, + "Q": 71230995886296547844286770147735054870849465379812954762983713904489759233350383164729814676282726841672841443277930887612560071405593846902336747858766127875795287445507639632096218873801296532878661675646715168843741383193429019420970355899846985062779107421621481264788608899327914283807067035047912995689, + "Xi": 9402118216258077893650330587582519725761707076837026476585485684614098285800, + "ShareID": 59857031556462284717113645237935722663924232558699039874171440941840562677325, "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 + 59857031556462284717113645237935722663924232558699039874171440941840562677323, + 59857031556462284717113645237935722663924232558699039874171440941840562677324, + 59857031556462284717113645237935722663924232558699039874171440941840562677325, + 59857031556462284717113645237935722663924232558699039874171440941840562677326, + 59857031556462284717113645237935722663924232558699039874171440941840562677327 ], "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + 25107490776052945575790163886980744121852075793230702092031092910315419013111724585107741342302647097816029689069156500419649067226989207335403141846585589456214707140363806918024254341805807847344462552372749802373561411623464018306841140152736878126807643286464707464144491205717529334857128642937311664356950670200785184493082292988908234459722618881044613550904554507333793627844968327344517418351075665978629614435510466378211576459017353838583039397930178040557511540818370302033808216608330168909665648805527673068950251148153088673193641290377199021831923470431364077200419352774733381328839199321622201645277, + 25347321253130040165669198464747637594561084543160875890419030859255281770152898118930416834987900972848102624649324216864737441361174703716495863609322476087408028387965233238285802668149470294745292681572931725456001393301305606431470624857854001369500295623909754190673037775702216922020351830224578270444039819022050738946522292544390839130641700344286132805509002888252787493089063466842186838763536749516490621525613122365080892293964923531037888659136998882617232588657938236946761539565880695421135081565601958037809654399412376843665230604400657963765839300124472222517361299084266084873325229770349534163801, + 21292308023632581181198289513256444712308177801737936647775817904740223548406904422170044682275257431431315028868812996459652895591102638516259762883465973519952131280804384814232387700680465986308431924126707276653911414520068641511680988816011871501850341616042836704357314055609697319128691732749390230733118584785117859207288385865822542643892497962395263780902218346962474333143560514409678469862250207440675303576178809488957082804485944446225032956319749038833642485681946267959990181650810435723731755627693490958402541015772649403218387116342415453965710612578891122860080475980560084488514089712934013739781, + 30862742439593241585708940738147962226366718050501165321237842572436669411737554224118298772517486812375362296405238805912443683584456437953738131350045938787466841040220797401584428446174730486886913719857484102733725336155131475996004306581440515141136345274453183481082707684162136893963291137234740111704738897973555849945611157507740799100242851006495725457213328987753002399448999330977114104566617308036743409045315165685308303262653843118404666538923863063081603256452671995759383632696290823794779551389200638930288120410329395673124242908818519519330118489440718827371013019585524024323106350150372893461689, + 22979378405138893589556133897521754683725883868866200124855036635451629318130978502381364148180090802113404290988890710862982965215323041776178270890557477521858892737028622171038670089616608354902721183960978083779850093600290031995183687729693685221986115197995396115379213021683786733329612441286209467155931087319154615773299643384467163395079212511182788668809520330816917834693871112365384301753056859879036141250397887546537837356226101620007886380291232478721279115321079877121757818532329118011682430897866452653899829996834157870634757693124417404439069108796004756126487268680259509658734527559041787231993 ], "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + 947268510305326446073634507724913447936734171636912400557401318775427643035322780043344044871778218536295489345747992085537349997385753459769909944243608187249295932620582767525243046024431872134558350124222211815956076009495579000118546531817489783543950708796804986346442485595844139040615169351977594594085460608932273701244091036215057114383266995365365226626217411088112095883376367775475107954293975266374705057036496941779873360807750450088301028537780564210964889218799820623451941121168857520561736570209171665676631521362739174866629364755585577716299287494251706261472512421959632149833106509542229972234, + 3880611998802971481733631912608098494196262778323132826239497201888814778206565779038508295122457059564658474446013387570155222804192995563846151508944721213706421845709980882611956739258515443677158361364276786837940404625680574358803765552923094221476122072037719326145018613827892918963555625064867923347247217043400958580189757825375746004023039968242295816205605839011845166061436412284630990719600784460170159747697580968014664501419463157750169639809058771175198577548493272625218114926414363501638734650889306046401503137104184980837461670247903219705017626260602184962369771097797399062562513353217770565531, + 10831225843690707396172531846155417775408096606230693395561759792282094678514600816663347869748948927505461627250570771469119140533266318664691242702922064589002187370016461932692821183944924214028723777910582605988927471997349297521445102656640882914313554019001846714781268540993241638422699989309757114468372538565383360692272346876551928106077801669528247179220120217249637229522616724754257258083101113512544707361337883525289735840725085893321825199206160881032044949147621462286088226618153585859120352649591156109044603116965314576319186213041333237791389005373191075396808136402252420638572954706343475908070, + 7379047495513012741768052948709028575585555485999633742902872635999567523931496397934138722681164927896829567152505037328183413349521525062101059035871423959216606865846805649228889409341121623645276995775466833580910793875325853108618331288089921648034916011339650914136927737993536151052450142994995957064434847339676185441357826456108823451579572271337009853306909251138234707237745952438799718674765118984490163866366131359672038740868456547662412411582409607895270049993194846640187000629665900662666631953358892682510778724505052220510687061629914270273761091793976303803161711621832014373503323366016634630406, + 11181628178709225486839172762330742659423724114653226835819397085381257304105257566937592702765853135360490266257083192830870077666275960663723976086310235934350572650480643691450656438652769853018111519504498965737440967647717818784480763727200258889702626069322469743838822112397983393755250519010298110374742466783922925487057158527359106287066137656141433380846258646250390469229071336860949790965072334352962521185854509550842351266605524163986806331802767702307634084162000820507840777885400805512071448246749124225768822589052733208381949931869152348048701648349767479285228581634453249080578720203097097514457 ], "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + 369382535766024782757053511943484023707590301248858510505619543451105355366349475321600848828578055383112252081262740450957242693258711711573898608872557215737850380375149487180022863563616178163440683814662347260503803753150609907077552201623376131096249150783552367189222999632342102603491398593162398739317344334427947844029843540621897547082716967267285286086227255034044222917612280937408214149645699005643727644027239999997789724357422423935120674874708262799420509411969660535187315093553065000790565517535769427338692918882249946664488170641583406635227373502217028982923125561321182147198392699754510926843, + 15969079226966183502382475788401338523488393107499291032002044296474627394217596503568693748659928310923714663501210832583018731196547300812154979725769686288361401778491755680431944887852103221593745623856378860738388368922715577130878948380171217565406616753411777571011139446871620361320986832525400727639941640937364793530207582464684574638726091525574744197708378588020682070096454926012197394347212926657909811288708691651092564968341401161265195710381753419063864921935963903871011102644256286369641306466313805437318014970058871604639507243703932226939038829663830985880788590281053591951619664726739953671018, + 4991965837400033768069871541004261063135140339060316531025599789490182217840042887067892359235887756385798984623237629620830856274859128458536333773291056510054624668039972342087961925191332459597054733496082441434562377800869508105363637144128472861641912914050632826421706717769073047295100882343425757237060029497292934794235607113222710491355298594636899811931946648047811854321545995037508110462735244536402582555614331492107887985617810756386029525697146027973237905139754077084275404126435090136074550061845235250362605148173730041087342012184590101575852114035899339078096801167678750962125251280492197772961, + 23064781826724373162059309790268929175652024853806919970585039362565178134882146726172590403276064143405780341854075186376431326467367967581674319153076910116152907650926195389275015857432169732825486479963071595528043281158690951801576413614814760292960443710324174730418861380180819802157714395735784311928236401433597447641321165573011917942945482934111736905171027083754748263370419119297225245442731766002872688005764140266867116940180286239156118891196076208004108028110204585118322786319227036687507415330523815192275901354672284703528348057050369197376684323825935099945673108591425248965307506340817771591441, + 11624783050789373146135145081851167787144912685550655481254753886486876945039110175782945406523699017594888407389014880101840909734903251718897005090801524812985842948051908677768943122267838594824514706829210878634123695856103833890298708489700110861686115821849284312876390414092087922712380944749991516509300532655840012200292315982914838173353675847647411050340787544373391445319951232858137394531780600427092367231102522845204917484802409447548360146964783744378214393625590646132406343132441415352603518333034984771651345199420810327304168670235976704426708270671344968176457707557409261114405916868900751036145 ], "BigXj": [ { "Curve": "secp256k1", "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 + 95225479287625109140551300097635441933915975782583911515343531112654602880814, + 113745830257261593369068705146261698861441809650110061237310141136031506190085 ] }, { "Curve": "secp256k1", "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 + 19909020077923456087962021369246692987785610885502332606764981730113023110067, + 60076350170225224442893367050676875983156697199114782416705437692213004111433 ] }, { "Curve": "secp256k1", "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 + 15656029217860558075932288367874977299995954233140419375302609508233656030817, + 88293512119423239639079954683198441748713533855873639211876694257553830935691 ] }, { "Curve": "secp256k1", "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 + 15825259379483050804368543653451724857970141958098760943464945060863314262898, + 46510254063758718632499733093297318465018983961512441577134679077369278627011 ] }, { "Curve": "secp256k1", "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 + 101163968142129288084264305494084191253074413300747651525777392366080313581620, + 19458713537429380315587854195885123660811710862685360770347430223563133437479 ] } ], "PaillierPKs": [ { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + "N": 26862170591381186117144639121800907711621441110694985906073099493104224258631997616337459884349048315436649598594766212786190249139720542986841637789367089751895746802368064104115662988051298443105665522549043623368088781757399812306242052676963161647378421463432813771675598887217547787422261194939872523185392600641669797286300834348740665304662829760721139573070204170902129262797162145018079946053388917283347495995703735479819366865064178966988962612678607190805087224162314010583832802161588455461100682306289046720947974174001828045869589748392310605782826097558345479795972515955139600004112610785604729710757 }, { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + "N": 28569426937909813160816852590974326182398707183206563780157489308279811863376093908221211903705518704565348072663191903836343635499091979154072341420741676813730020871016039693403607409462919125031372066954550208350129974140220983698064393340951930706962427015297577648437601064168848334164842111410896962654571826800302294766234904003147622246551178854009373086133349568572584906962173774282191211244583738166117722131851467394725949126097483624199330170392292115956857647929895014719727669500452359666570376448590229755339126098108084513655351630004806845329610086536348250655270492083872210115099541350980087869489 }, { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + "N": 24206147216197161168800749713794253097360175090858672931928135053300720098263302199858364218289609440982336278990382306871237304598903324389321581163067390799950591531027240968685694116269131503639449889176152844762069948482523881916749982047987022468266212702666839762407435492828573898843940379718086699114362935636941751781265771147161683942488081675636897258681038605775448214108367751993197065197897191643383564344845162403884453232776839031251175853763144050201714908798915379664014184087913029794762586324582687266708240565299184055542301695610690632283322864399949456272972805575542427101734659832898527078677 }, { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + "N": 27422133357851370316963785322815189604726575748114057717984837411771756070272482926958898758576215271907291562151935508777240048370919087691109363558754627052939183040039501310348824807217194423462067796268979252972390229592512803802105741520833681021737552492269574490364955499455488503619050939812934483556240372784852668293634144857453177818024665828049715609921864852313661181061967825839048394234894185931968992541576874445544364635775263264674967563604397356712492758200667296917972566268326712277912968541425534456091226445588857731271210711997226828598037017820056231841183710665446107873358077925757871906777 }, { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + "N": 21505960474634451313164479453847246698949068816168543450757887402781638444470085463014709362627652554915905319404707097558936051290374460876928738652082570278593089424429424860613076608894979923762290356343173648507348492292368062802168911752824853129719568062188174453668131066706292448200533705323966142811976260936406546600112652090553738417255733994944221554428167638466246670287061019896463881779810197390238307556892485807795138448959345532929528137209046373349550262355661974463926686395148775662060236988349400478971416621513539908477667503550115870803074998306032371456267566517610267867391193312424397935929 } ], "ECDSAPub": { "Curve": "secp256k1", "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 + 76266489189895419469020567248501927603989841769205411177925179985114092514949, + 17959638069442050620236663888410692330316152082152911789514411031446499229348 ] } } \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_3.json b/test/_ecdsa_fixtures/keygen_data_3.json index 1addb80b..377f5f7a 100644 --- a/test/_ecdsa_fixtures/keygen_data_3.json +++ b/test/_ecdsa_fixtures/keygen_data_3.json @@ -1,317 +1,107 @@ { "PaillierSK": { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981, - "LambdaN": 12926593580054158776555136734008212894619623526168162791126801083825288103917327155701295537132714765911763964790935371531033606022983697856379774589992184401586228974006664272419746972476597562965673891419826030969510084405900320908179792758967311838583825327404038140201947401109455749095022777436439029949375462515421525619378837746445455097158816262239645650879334127402142976547064607409050706614523806962402106472823289650014308183620003451579964407012184407173021797179163636872200340118850478792637900186134162105095931497732249533252636683566717856850489814795280658489947200084712556083653675404388308579382, - "PhiN": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059898750925030843051238757675492890910194317632524479291301758668254804285953094129214818101413229047613924804212945646579300028616367240006903159928814024368814346043594358327273744400680237700957585275800372268324210191862995464499066505273367133435713700979629590561316979894400169425112167307350808776617158764, - "P": 171049579752054032601740721551932053037467239641965662523724539024634415731726353182647107571508871289232408308989711515426859300116243945363565141611323543612225951294964594052103883606596494994339068137780074188277011538841007982560937909876845448992538208201683660169437622530041351032687094927941113680479, - "Q": 151144406186697234579040556435848670952209938763805811365811453115762934479853515787916907742807805706124694189912818415791652750692364409007336832394951272960037809120397729764186145258741118664928953210393603799284465574999741525890999849205825542769866009850657738984706380213007566635708730323614710797739 + "N": 27422133357851370316963785322815189604726575748114057717984837411771756070272482926958898758576215271907291562151935508777240048370919087691109363558754627052939183040039501310348824807217194423462067796268979252972390229592512803802105741520833681021737552492269574490364955499455488503619050939812934483556240372784852668293634144857453177818024665828049715609921864852313661181061967825839048394234894185931968992541576874445544364635775263264674967563604397356712492758200667296917972566268326712277912968541425534456091226445588857731271210711997226828598037017820056231841183710665446107873358077925757871906777, + "LambdaN": 13711066678925685158481892661407594802363287874057028858992418705885878035136241463479449379288107635953645781075967754388620024185459543845554681779377313526469591520019750655174412403608597211731033898134489626486195114796256401901052870760416840510868776246134787245182477749727744251809525469906467241777954213500922962598207900244610615470932048383158628700567162631631189503587620334276701648788930166782916153827195929574382625322547232728203845276358810162861271567739888395670907555222537982867559801824374155710793133779866475562224398329799259589595882004342841775151121290158152012860933070519454708809498, + "PhiN": 27422133357851370316963785322815189604726575748114057717984837411771756070272482926958898758576215271907291562151935508777240048370919087691109363558754627052939183040039501310348824807217194423462067796268979252972390229592512803802105741520833681021737552492269574490364955499455488503619050939812934483555908427001845925196415800489221230941864096766317257401134325263262379007175240668553403297577860333565832307654391859148765250645094465456407690552717620325722543135479776791341815110445075965735119603648748311421586267559732951124448796659598519179191764008685683550302242580316304025721866141038909417618996, + "P": 177147297802525579102993050062131223090295228216279191453242872804814556506749685154258555822845767694821633091957303084556832484826430719319109868163685560366598818468952708376164311637165401295038149681028640001543182713340547770949859961750808928993661379228653713884473377336021514701747429842270320596239, + "Q": 154798485204217518115351318169815653070273833516179017334296716246467617379977472131386540834188084671315051795227712212222281505854367088948167142723091470623350804251937797199993144186085345247755215211648583032961776172515358835872554090647898720412611629905718967654467753013120567449744507044578133691543 }, - "NTildei": 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - "H1i": 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - "H2i": 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - "Alpha": 2162237257786792507571912323434395369788377911974088022562558554070813726329952055856187379047477794995273467488865761495047982917560315486975512687365922015899582819997929572556057792721965732735400105916302383869117289613113673962207586058536294219308041569280549470267535694196859701770948192115051162613567683721899122139502298309768373134170439651559490400945672778083705315110691206988761283336547805172089318914857716675343125034837503399049390193581646763917667160906708176665001657958524520205773690611768600441892017186454516803121289283581608874755463044630317386395862277586588208457975741282077461925515, - "Beta": 1318287748435933489436917068572852874927361770145063349305160762078769590208495058283075856615736775025530441635777048468418152895946286533405814589662782045169040423378598498435080419318714504014117628662411734092027007871508925521828578838036555023626267039234439257641600753089002167299918493807026006318003805770231043139087318075665275120610136690109644869963517097053632481580020957551654942753283512426953703559152038521555769262278486507011959513463240924370349326013357022105712881487926040533007100234090629833929526081598825641535909389284257436034942822148564167475386551247154893158253110695656333491956, - "P": 75083036274244843844948270466991989821643435531390069438399534690409420521594886581351946393053939792158132062843572004185533110183055250580318785419802883262505588224340176105560526890244161141830217344930418137211165613028368406906461025358406374742771347648431934690837330627028077527811756697488245442121, - "Q": 77563297662690274995928071310836878388448355035181919188803650281958508629833146816654780749333623973760970689290273382785324198184801568338744344246407823326469918518392391597951485919654660719748323796351351879283117771377464104325179479257443917582374463176503231898797267618476001177676093911785637265349, - "Xi": 58186213088371671859629957699015962930560401782663318396788156735206796299566, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823749, + "NTildei": 30862742439593241585708940738147962226366718050501165321237842572436669411737554224118298772517486812375362296405238805912443683584456437953738131350045938787466841040220797401584428446174730486886913719857484102733725336155131475996004306581440515141136345274453183481082707684162136893963291137234740111704738897973555849945611157507740799100242851006495725457213328987753002399448999330977114104566617308036743409045315165685308303262653843118404666538923863063081603256452671995759383632696290823794779551389200638930288120410329395673124242908818519519330118489440718827371013019585524024323106350150372893461689, + "H1i": 7379047495513012741768052948709028575585555485999633742902872635999567523931496397934138722681164927896829567152505037328183413349521525062101059035871423959216606865846805649228889409341121623645276995775466833580910793875325853108618331288089921648034916011339650914136927737993536151052450142994995957064434847339676185441357826456108823451579572271337009853306909251138234707237745952438799718674765118984490163866366131359672038740868456547662412411582409607895270049993194846640187000629665900662666631953358892682510778724505052220510687061629914270273761091793976303803161711621832014373503323366016634630406, + "H2i": 23064781826724373162059309790268929175652024853806919970585039362565178134882146726172590403276064143405780341854075186376431326467367967581674319153076910116152907650926195389275015857432169732825486479963071595528043281158690951801576413614814760292960443710324174730418861380180819802157714395735784311928236401433597447641321165573011917942945482934111736905171027083754748263370419119297225245442731766002872688005764140266867116940180286239156118891196076208004108028110204585118322786319227036687507415330523815192275901354672284703528348057050369197376684323825935099945673108591425248965307506340817771591441, + "Alpha": 4648622922365995691950852472307693991496748717650755886041472758966649772223577185560503709377403263490257440740160039880829025875460382743719657106043215046874887472104366457266719570185588106832548763709423754442528268880550658756292061197437488907821505351342887275050423812794709440946117410292944992197499521419994551410803216027766619098594614692274903134932000727788522050861446364496906190349211518548008043980245101419488037879799945724570352667459813306016191262247735401344569214934207946586389966378909900863650262061552284378821161631397536341267121590001946593992670005380822124185382452984619192964296, + "Beta": 7283035794852630027597719507311988400352157227741064867320944375271311410043321457567543258900687773840402210832336699099355652336427138303463630478259640028368969060077262761882674943258400609728464897259824878619654205445207266962415152720307340810440440488319215406143967306140587488336460685951455315996674081010575049283159077953679770530039740316932302759499007229971328506788005448873223090633785198376902652454598099861304289786086831409011204427476269302086833451326645185421061429645318495124264857467498648034188324619279322211616547377743903673008882675216867616790252156678523580698939063094811432804106, + "P": 88946853524429644157279692699940537205256244584836191357676563352646399437711907359597600783173787788473495644611336583533678480415103123545022822524172251070286490589683779917058542223015781748214551278028480200408190616872417308222241413563336739390358317830977287500459962096931426244013093349893192168943, + "Q": 86744896577810517384645824130564891628128716346237962081502021347048770344272448219940628925379372197310560098081816109684647116457382634604974690735098205059906140134063148657379351812283596597272202732430603458302975974954397686666228707698307455286780720136391242400469746586788331488821897115156771081523, + "Xi": 40862812087778895933409199889429465759884835742974119277932406627299270252737, + "ShareID": 59857031556462284717113645237935722663924232558699039874171440941840562677326, "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 + 59857031556462284717113645237935722663924232558699039874171440941840562677323, + 59857031556462284717113645237935722663924232558699039874171440941840562677324, + 59857031556462284717113645237935722663924232558699039874171440941840562677325, + 59857031556462284717113645237935722663924232558699039874171440941840562677326, + 59857031556462284717113645237935722663924232558699039874171440941840562677327 ], "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + 25107490776052945575790163886980744121852075793230702092031092910315419013111724585107741342302647097816029689069156500419649067226989207335403141846585589456214707140363806918024254341805807847344462552372749802373561411623464018306841140152736878126807643286464707464144491205717529334857128642937311664356950670200785184493082292988908234459722618881044613550904554507333793627844968327344517418351075665978629614435510466378211576459017353838583039397930178040557511540818370302033808216608330168909665648805527673068950251148153088673193641290377199021831923470431364077200419352774733381328839199321622201645277, + 25347321253130040165669198464747637594561084543160875890419030859255281770152898118930416834987900972848102624649324216864737441361174703716495863609322476087408028387965233238285802668149470294745292681572931725456001393301305606431470624857854001369500295623909754190673037775702216922020351830224578270444039819022050738946522292544390839130641700344286132805509002888252787493089063466842186838763536749516490621525613122365080892293964923531037888659136998882617232588657938236946761539565880695421135081565601958037809654399412376843665230604400657963765839300124472222517361299084266084873325229770349534163801, + 21292308023632581181198289513256444712308177801737936647775817904740223548406904422170044682275257431431315028868812996459652895591102638516259762883465973519952131280804384814232387700680465986308431924126707276653911414520068641511680988816011871501850341616042836704357314055609697319128691732749390230733118584785117859207288385865822542643892497962395263780902218346962474333143560514409678469862250207440675303576178809488957082804485944446225032956319749038833642485681946267959990181650810435723731755627693490958402541015772649403218387116342415453965710612578891122860080475980560084488514089712934013739781, + 30862742439593241585708940738147962226366718050501165321237842572436669411737554224118298772517486812375362296405238805912443683584456437953738131350045938787466841040220797401584428446174730486886913719857484102733725336155131475996004306581440515141136345274453183481082707684162136893963291137234740111704738897973555849945611157507740799100242851006495725457213328987753002399448999330977114104566617308036743409045315165685308303262653843118404666538923863063081603256452671995759383632696290823794779551389200638930288120410329395673124242908818519519330118489440718827371013019585524024323106350150372893461689, + 22979378405138893589556133897521754683725883868866200124855036635451629318130978502381364148180090802113404290988890710862982965215323041776178270890557477521858892737028622171038670089616608354902721183960978083779850093600290031995183687729693685221986115197995396115379213021683786733329612441286209467155931087319154615773299643384467163395079212511182788668809520330816917834693871112365384301753056859879036141250397887546537837356226101620007886380291232478721279115321079877121757818532329118011682430897866452653899829996834157870634757693124417404439069108796004756126487268680259509658734527559041787231993 ], "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + 947268510305326446073634507724913447936734171636912400557401318775427643035322780043344044871778218536295489345747992085537349997385753459769909944243608187249295932620582767525243046024431872134558350124222211815956076009495579000118546531817489783543950708796804986346442485595844139040615169351977594594085460608932273701244091036215057114383266995365365226626217411088112095883376367775475107954293975266374705057036496941779873360807750450088301028537780564210964889218799820623451941121168857520561736570209171665676631521362739174866629364755585577716299287494251706261472512421959632149833106509542229972234, + 3880611998802971481733631912608098494196262778323132826239497201888814778206565779038508295122457059564658474446013387570155222804192995563846151508944721213706421845709980882611956739258515443677158361364276786837940404625680574358803765552923094221476122072037719326145018613827892918963555625064867923347247217043400958580189757825375746004023039968242295816205605839011845166061436412284630990719600784460170159747697580968014664501419463157750169639809058771175198577548493272625218114926414363501638734650889306046401503137104184980837461670247903219705017626260602184962369771097797399062562513353217770565531, + 10831225843690707396172531846155417775408096606230693395561759792282094678514600816663347869748948927505461627250570771469119140533266318664691242702922064589002187370016461932692821183944924214028723777910582605988927471997349297521445102656640882914313554019001846714781268540993241638422699989309757114468372538565383360692272346876551928106077801669528247179220120217249637229522616724754257258083101113512544707361337883525289735840725085893321825199206160881032044949147621462286088226618153585859120352649591156109044603116965314576319186213041333237791389005373191075396808136402252420638572954706343475908070, + 7379047495513012741768052948709028575585555485999633742902872635999567523931496397934138722681164927896829567152505037328183413349521525062101059035871423959216606865846805649228889409341121623645276995775466833580910793875325853108618331288089921648034916011339650914136927737993536151052450142994995957064434847339676185441357826456108823451579572271337009853306909251138234707237745952438799718674765118984490163866366131359672038740868456547662412411582409607895270049993194846640187000629665900662666631953358892682510778724505052220510687061629914270273761091793976303803161711621832014373503323366016634630406, + 11181628178709225486839172762330742659423724114653226835819397085381257304105257566937592702765853135360490266257083192830870077666275960663723976086310235934350572650480643691450656438652769853018111519504498965737440967647717818784480763727200258889702626069322469743838822112397983393755250519010298110374742466783922925487057158527359106287066137656141433380846258646250390469229071336860949790965072334352962521185854509550842351266605524163986806331802767702307634084162000820507840777885400805512071448246749124225768822589052733208381949931869152348048701648349767479285228581634453249080578720203097097514457 ], "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + 369382535766024782757053511943484023707590301248858510505619543451105355366349475321600848828578055383112252081262740450957242693258711711573898608872557215737850380375149487180022863563616178163440683814662347260503803753150609907077552201623376131096249150783552367189222999632342102603491398593162398739317344334427947844029843540621897547082716967267285286086227255034044222917612280937408214149645699005643727644027239999997789724357422423935120674874708262799420509411969660535187315093553065000790565517535769427338692918882249946664488170641583406635227373502217028982923125561321182147198392699754510926843, + 15969079226966183502382475788401338523488393107499291032002044296474627394217596503568693748659928310923714663501210832583018731196547300812154979725769686288361401778491755680431944887852103221593745623856378860738388368922715577130878948380171217565406616753411777571011139446871620361320986832525400727639941640937364793530207582464684574638726091525574744197708378588020682070096454926012197394347212926657909811288708691651092564968341401161265195710381753419063864921935963903871011102644256286369641306466313805437318014970058871604639507243703932226939038829663830985880788590281053591951619664726739953671018, + 4991965837400033768069871541004261063135140339060316531025599789490182217840042887067892359235887756385798984623237629620830856274859128458536333773291056510054624668039972342087961925191332459597054733496082441434562377800869508105363637144128472861641912914050632826421706717769073047295100882343425757237060029497292934794235607113222710491355298594636899811931946648047811854321545995037508110462735244536402582555614331492107887985617810756386029525697146027973237905139754077084275404126435090136074550061845235250362605148173730041087342012184590101575852114035899339078096801167678750962125251280492197772961, + 23064781826724373162059309790268929175652024853806919970585039362565178134882146726172590403276064143405780341854075186376431326467367967581674319153076910116152907650926195389275015857432169732825486479963071595528043281158690951801576413614814760292960443710324174730418861380180819802157714395735784311928236401433597447641321165573011917942945482934111736905171027083754748263370419119297225245442731766002872688005764140266867116940180286239156118891196076208004108028110204585118322786319227036687507415330523815192275901354672284703528348057050369197376684323825935099945673108591425248965307506340817771591441, + 11624783050789373146135145081851167787144912685550655481254753886486876945039110175782945406523699017594888407389014880101840909734903251718897005090801524812985842948051908677768943122267838594824514706829210878634123695856103833890298708489700110861686115821849284312876390414092087922712380944749991516509300532655840012200292315982914838173353675847647411050340787544373391445319951232858137394531780600427092367231102522845204917484802409447548360146964783744378214393625590646132406343132441415352603518333034984771651345199420810327304168670235976704426708270671344968176457707557409261114405916868900751036145 ], "BigXj": [ { "Curve": "secp256k1", "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 + 95225479287625109140551300097635441933915975782583911515343531112654602880814, + 113745830257261593369068705146261698861441809650110061237310141136031506190085 ] }, { "Curve": "secp256k1", "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 + 19909020077923456087962021369246692987785610885502332606764981730113023110067, + 60076350170225224442893367050676875983156697199114782416705437692213004111433 ] }, { "Curve": "secp256k1", "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 + 15656029217860558075932288367874977299995954233140419375302609508233656030817, + 88293512119423239639079954683198441748713533855873639211876694257553830935691 ] }, { "Curve": "secp256k1", "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 + 15825259379483050804368543653451724857970141958098760943464945060863314262898, + 46510254063758718632499733093297318465018983961512441577134679077369278627011 ] }, { "Curve": "secp256k1", "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 + 101163968142129288084264305494084191253074413300747651525777392366080313581620, + 19458713537429380315587854195885123660811710862685360770347430223563133437479 ] } ], "PaillierPKs": [ { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + "N": 26862170591381186117144639121800907711621441110694985906073099493104224258631997616337459884349048315436649598594766212786190249139720542986841637789367089751895746802368064104115662988051298443105665522549043623368088781757399812306242052676963161647378421463432813771675598887217547787422261194939872523185392600641669797286300834348740665304662829760721139573070204170902129262797162145018079946053388917283347495995703735479819366865064178966988962612678607190805087224162314010583832802161588455461100682306289046720947974174001828045869589748392310605782826097558345479795972515955139600004112610785604729710757 }, { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + "N": 28569426937909813160816852590974326182398707183206563780157489308279811863376093908221211903705518704565348072663191903836343635499091979154072341420741676813730020871016039693403607409462919125031372066954550208350129974140220983698064393340951930706962427015297577648437601064168848334164842111410896962654571826800302294766234904003147622246551178854009373086133349568572584906962173774282191211244583738166117722131851467394725949126097483624199330170392292115956857647929895014719727669500452359666570376448590229755339126098108084513655351630004806845329610086536348250655270492083872210115099541350980087869489 }, { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + "N": 24206147216197161168800749713794253097360175090858672931928135053300720098263302199858364218289609440982336278990382306871237304598903324389321581163067390799950591531027240968685694116269131503639449889176152844762069948482523881916749982047987022468266212702666839762407435492828573898843940379718086699114362935636941751781265771147161683942488081675636897258681038605775448214108367751993197065197897191643383564344845162403884453232776839031251175853763144050201714908798915379664014184087913029794762586324582687266708240565299184055542301695610690632283322864399949456272972805575542427101734659832898527078677 }, { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + "N": 27422133357851370316963785322815189604726575748114057717984837411771756070272482926958898758576215271907291562151935508777240048370919087691109363558754627052939183040039501310348824807217194423462067796268979252972390229592512803802105741520833681021737552492269574490364955499455488503619050939812934483556240372784852668293634144857453177818024665828049715609921864852313661181061967825839048394234894185931968992541576874445544364635775263264674967563604397356712492758200667296917972566268326712277912968541425534456091226445588857731271210711997226828598037017820056231841183710665446107873358077925757871906777 }, { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + "N": 21505960474634451313164479453847246698949068816168543450757887402781638444470085463014709362627652554915905319404707097558936051290374460876928738652082570278593089424429424860613076608894979923762290356343173648507348492292368062802168911752824853129719568062188174453668131066706292448200533705323966142811976260936406546600112652090553738417255733994944221554428167638466246670287061019896463881779810197390238307556892485807795138448959345532929528137209046373349550262355661974463926686395148775662060236988349400478971416621513539908477667503550115870803074998306032371456267566517610267867391193312424397935929 } ], "ECDSAPub": { "Curve": "secp256k1", "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 + 76266489189895419469020567248501927603989841769205411177925179985114092514949, + 17959638069442050620236663888410692330316152082152911789514411031446499229348 ] } } \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_4.json b/test/_ecdsa_fixtures/keygen_data_4.json index 4ca39536..aad49b67 100644 --- a/test/_ecdsa_fixtures/keygen_data_4.json +++ b/test/_ecdsa_fixtures/keygen_data_4.json @@ -1,317 +1,107 @@ { "PaillierSK": { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977, - "LambdaN": 12212925481593188691122506652253477021696088974802647597903632670909090838183491079392591938337133296972614075698829598822736192729868139702466764327771511978681174436393959449964604491659934575197623934389065652150818935043335944763640937410800966920859275874571608998143252947966653591242597021642837896235837552492595498282494023847997518900465966328917926627921492796596086951115055926584206733437185639754649651200936382477273146862118953432034332558847456303962884453396620867262678126768574095531918865037241130996975180530327190311276655812194574481227744042276418905519424788047667068494977668249916099780698, - "PhiN": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471675104985190996564988047695995037800931932657835853255842985593192173902230111853168413466874371279509299302401872764954546293724237906864068665117694912607925768906793241734525356253537148191063837730074482261993950361060654380622553311624389148962455488084552837811038849576095334136989955336499832199561396, - "P": 137038252387342671370057272442263731762323339055891818283089371170646437917391379908964171557063906897267056889403966989855498465433726551011456013363585308591172585238392800319632765039807439824915461018360323804338837483752042629455390499209541443111374026264265287751875044453170324072023852792107749339239, - "Q": 178241115437943469831571070659207392726927264170368205537877789238497439577313862251023933258635473616233354580478816706875041213053922128756480525555536218127292821300895322971775769520954658517091725829114098769702648915302235686445188343879678467175326790995251529913360965379304436238654140575669939809343 + "N": 21505960474634451313164479453847246698949068816168543450757887402781638444470085463014709362627652554915905319404707097558936051290374460876928738652082570278593089424429424860613076608894979923762290356343173648507348492292368062802168911752824853129719568062188174453668131066706292448200533705323966142811976260936406546600112652090553738417255733994944221554428167638466246670287061019896463881779810197390238307556892485807795138448959345532929528137209046373349550262355661974463926686395148775662060236988349400478971416621513539908477667503550115870803074998306032371456267566517610267867391193312424397935929, + "LambdaN": 10752980237317225656582239726923623349474534408084271725378943701390819222235042731507354681313826277457952659702353548779468025645187230438464369326041285139296544712214712430306538304447489961881145178171586824253674246146184031401084455876412426564859784031094087226834065533353146224100266852661983071405841009806066377556363073246749711470669165019696231902877884780913836332354683627070599850615352747373967268175605638682997172469714109771448131783193870242315301315250229103155846998372468463602427490952881430803570477256250706776089292559939188573801844886050618595015608293574001360336821185472476925563642, + "PhiN": 21505960474634451313164479453847246698949068816168543450757887402781638444470085463014709362627652554915905319404707097558936051290374460876928738652082570278593089424429424860613076608894979923762290356343173648507348492292368062802168911752824853129719568062188174453668131066706292448200533705323966142811682019612132755112726146493499422941338330039392463805755769561827672664709367254141199701230705494747934536351211277365994344939428219542896263566387740484630602630500458206311693996744936927204854981905762861607140954512501413552178585119878377147603689772101237190031216587148002720673642370944953851127284, + "P": 135350838307960257887337158821773449178953711379177117359015513540391289755315134832276760618216543327963109761712067613269505433440747687880030354506739527233631716724697521173335989032180031336807107200570956811703022411478868437314661062648778515879021174080716096058754325767045869446778292179625314996503, + "Q": 158890485965831229499168438232542026738450244172580631313382563098182715822378630922987419930888159314340661443969140828531288076090378302153234216314566361485315915130506246978896700618031817120398147882015582060127439697533257918984421321022960207320364052124079085366296653602561677746970530187845231812143 }, - "NTildei": 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - "H1i": 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - "H2i": 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - "Alpha": 7819466986478462234778193739908371888308212086554257860612279448226630795071461205246918649584225598225614792538404739969707798122356719562729612746332985514925762273529465269741854443488292124137846129268440949585976767104921853218833738387985061399353803261767435036863428204090407865060463030345619658438940601319179632850066084058875112112303451255595746636604776087105638038492470046303608306817550029318584498837492765392130182063360937008887535500581245482792241422346106712407056233891215053368245727500678207451759638888736337380278665340177579435627977957958469221409710863153555656599594042555019814194377, - "Beta": 478347742417071748581008603446185512410102093193252370907714653344248732393576573487221559386925239844297170657852685571190775274599352516567713443945248288091326483373714885476481781869650074446030528599916863294916060114929692837726385479607961626590842256835383844029002721207596000680652427756656480654618912205861055304525484345295039525503432061087237799959762519376217338076574684281467286725106369338683786013707555106319932019817451597678488584871910641346748919572786723030054075781609782984976996958579037441992548707539087469224937417704093807823578342678107316082942427718918444541087712721949009290961, - "P": 85624256142061016256487491272476554031484429055500329950499045190411716326794205799853968374708460630003426712739093727210094029092694067301259558333043705179548754240145369314436654520327628396887746570128072664663878962601794157370002126337960523463233019518297144322055375170600048801978645103066632009019, - "Q": 70550328206728130406961201861184784726242265635267784615139505665966304016750850346646860652546797813602029194995420717784285173410666553650514162339044760611605275119481943234409029679271086401301171615734104739174725051736620909754322819856433496037316930839191399125140608685392829831605431465339223253961, - "Xi": 96538143764432715093627454728081854071822032322465615254583024627993604591737, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823750, + "NTildei": 22979378405138893589556133897521754683725883868866200124855036635451629318130978502381364148180090802113404290988890710862982965215323041776178270890557477521858892737028622171038670089616608354902721183960978083779850093600290031995183687729693685221986115197995396115379213021683786733329612441286209467155931087319154615773299643384467163395079212511182788668809520330816917834693871112365384301753056859879036141250397887546537837356226101620007886380291232478721279115321079877121757818532329118011682430897866452653899829996834157870634757693124417404439069108796004756126487268680259509658734527559041787231993, + "H1i": 11181628178709225486839172762330742659423724114653226835819397085381257304105257566937592702765853135360490266257083192830870077666275960663723976086310235934350572650480643691450656438652769853018111519504498965737440967647717818784480763727200258889702626069322469743838822112397983393755250519010298110374742466783922925487057158527359106287066137656141433380846258646250390469229071336860949790965072334352962521185854509550842351266605524163986806331802767702307634084162000820507840777885400805512071448246749124225768822589052733208381949931869152348048701648349767479285228581634453249080578720203097097514457, + "H2i": 11624783050789373146135145081851167787144912685550655481254753886486876945039110175782945406523699017594888407389014880101840909734903251718897005090801524812985842948051908677768943122267838594824514706829210878634123695856103833890298708489700110861686115821849284312876390414092087922712380944749991516509300532655840012200292315982914838173353675847647411050340787544373391445319951232858137394531780600427092367231102522845204917484802409447548360146964783744378214393625590646132406343132441415352603518333034984771651345199420810327304168670235976704426708270671344968176457707557409261114405916868900751036145, + "Alpha": 16240540962261166004211970670812971351480203151037237582769828801814689525653208090910663340159713344814790831486977215754908287497313853309804006226093506601752934119941709910453812455423784202324364228489440854102131033285288331999985864329846570322740304539785450985749381916050412115349790862491262399788251446971690344814332203163069600100340564179945886153017458386787068823782780403673848142124799383400779585915079517483545276218709468874820194872973213460799414555908836840291102289352318644049681699355227143818533468279900814783675013067347821048414318605018045347020498434873018402652391925998151906681941, + "Beta": 1723486697459218047345604944772577398595639174446372449733469017724037824646478073064036284409738447924923034349448915684865600027347429475331153769234544742762414746360506319339234569983871611652069442411059465102055257649507600765942646810180088097484550429298851479894694459800203980598253964419400048854156356200276777683732373765075415376989469613023233067835757787743964029401819512542611693471394988936548362080624781089282229422881682692850815018172571782677656491615083411197752197777949430384797246039266880644209517450862071108122536325302378370382044491103427488921489419539584033950495975894166924830598, + "P": 69497403900123055294512695371047987091100944784074526174548213609978119582884267995733221177643872461269822394244331609122728065030878548482603080986500743257678469453891586349369737631257188634428830962126742079718576995795162060648624476811816692784132596469903818449790670542178059258561916780466601681803, + "Q": 82662722330474726002641887846339461045747814112775706988763403904216639639472599582628541320325221413967353610050290850627993655720017622068669883265061738024090693419531380792968916424065879550143820413896195191562138594863014885149637306127518260357308690216048155754633897361170932639172413877671942265399, + "Xi": 55538075200338111200259293729261221540075119582900623624784541200756428158033, + "ShareID": 59857031556462284717113645237935722663924232558699039874171440941840562677327, "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 + 59857031556462284717113645237935722663924232558699039874171440941840562677323, + 59857031556462284717113645237935722663924232558699039874171440941840562677324, + 59857031556462284717113645237935722663924232558699039874171440941840562677325, + 59857031556462284717113645237935722663924232558699039874171440941840562677326, + 59857031556462284717113645237935722663924232558699039874171440941840562677327 ], "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 + 25107490776052945575790163886980744121852075793230702092031092910315419013111724585107741342302647097816029689069156500419649067226989207335403141846585589456214707140363806918024254341805807847344462552372749802373561411623464018306841140152736878126807643286464707464144491205717529334857128642937311664356950670200785184493082292988908234459722618881044613550904554507333793627844968327344517418351075665978629614435510466378211576459017353838583039397930178040557511540818370302033808216608330168909665648805527673068950251148153088673193641290377199021831923470431364077200419352774733381328839199321622201645277, + 25347321253130040165669198464747637594561084543160875890419030859255281770152898118930416834987900972848102624649324216864737441361174703716495863609322476087408028387965233238285802668149470294745292681572931725456001393301305606431470624857854001369500295623909754190673037775702216922020351830224578270444039819022050738946522292544390839130641700344286132805509002888252787493089063466842186838763536749516490621525613122365080892293964923531037888659136998882617232588657938236946761539565880695421135081565601958037809654399412376843665230604400657963765839300124472222517361299084266084873325229770349534163801, + 21292308023632581181198289513256444712308177801737936647775817904740223548406904422170044682275257431431315028868812996459652895591102638516259762883465973519952131280804384814232387700680465986308431924126707276653911414520068641511680988816011871501850341616042836704357314055609697319128691732749390230733118584785117859207288385865822542643892497962395263780902218346962474333143560514409678469862250207440675303576178809488957082804485944446225032956319749038833642485681946267959990181650810435723731755627693490958402541015772649403218387116342415453965710612578891122860080475980560084488514089712934013739781, + 30862742439593241585708940738147962226366718050501165321237842572436669411737554224118298772517486812375362296405238805912443683584456437953738131350045938787466841040220797401584428446174730486886913719857484102733725336155131475996004306581440515141136345274453183481082707684162136893963291137234740111704738897973555849945611157507740799100242851006495725457213328987753002399448999330977114104566617308036743409045315165685308303262653843118404666538923863063081603256452671995759383632696290823794779551389200638930288120410329395673124242908818519519330118489440718827371013019585524024323106350150372893461689, + 22979378405138893589556133897521754683725883868866200124855036635451629318130978502381364148180090802113404290988890710862982965215323041776178270890557477521858892737028622171038670089616608354902721183960978083779850093600290031995183687729693685221986115197995396115379213021683786733329612441286209467155931087319154615773299643384467163395079212511182788668809520330816917834693871112365384301753056859879036141250397887546537837356226101620007886380291232478721279115321079877121757818532329118011682430897866452653899829996834157870634757693124417404439069108796004756126487268680259509658734527559041787231993 ], "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 + 947268510305326446073634507724913447936734171636912400557401318775427643035322780043344044871778218536295489345747992085537349997385753459769909944243608187249295932620582767525243046024431872134558350124222211815956076009495579000118546531817489783543950708796804986346442485595844139040615169351977594594085460608932273701244091036215057114383266995365365226626217411088112095883376367775475107954293975266374705057036496941779873360807750450088301028537780564210964889218799820623451941121168857520561736570209171665676631521362739174866629364755585577716299287494251706261472512421959632149833106509542229972234, + 3880611998802971481733631912608098494196262778323132826239497201888814778206565779038508295122457059564658474446013387570155222804192995563846151508944721213706421845709980882611956739258515443677158361364276786837940404625680574358803765552923094221476122072037719326145018613827892918963555625064867923347247217043400958580189757825375746004023039968242295816205605839011845166061436412284630990719600784460170159747697580968014664501419463157750169639809058771175198577548493272625218114926414363501638734650889306046401503137104184980837461670247903219705017626260602184962369771097797399062562513353217770565531, + 10831225843690707396172531846155417775408096606230693395561759792282094678514600816663347869748948927505461627250570771469119140533266318664691242702922064589002187370016461932692821183944924214028723777910582605988927471997349297521445102656640882914313554019001846714781268540993241638422699989309757114468372538565383360692272346876551928106077801669528247179220120217249637229522616724754257258083101113512544707361337883525289735840725085893321825199206160881032044949147621462286088226618153585859120352649591156109044603116965314576319186213041333237791389005373191075396808136402252420638572954706343475908070, + 7379047495513012741768052948709028575585555485999633742902872635999567523931496397934138722681164927896829567152505037328183413349521525062101059035871423959216606865846805649228889409341121623645276995775466833580910793875325853108618331288089921648034916011339650914136927737993536151052450142994995957064434847339676185441357826456108823451579572271337009853306909251138234707237745952438799718674765118984490163866366131359672038740868456547662412411582409607895270049993194846640187000629665900662666631953358892682510778724505052220510687061629914270273761091793976303803161711621832014373503323366016634630406, + 11181628178709225486839172762330742659423724114653226835819397085381257304105257566937592702765853135360490266257083192830870077666275960663723976086310235934350572650480643691450656438652769853018111519504498965737440967647717818784480763727200258889702626069322469743838822112397983393755250519010298110374742466783922925487057158527359106287066137656141433380846258646250390469229071336860949790965072334352962521185854509550842351266605524163986806331802767702307634084162000820507840777885400805512071448246749124225768822589052733208381949931869152348048701648349767479285228581634453249080578720203097097514457 ], "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 + 369382535766024782757053511943484023707590301248858510505619543451105355366349475321600848828578055383112252081262740450957242693258711711573898608872557215737850380375149487180022863563616178163440683814662347260503803753150609907077552201623376131096249150783552367189222999632342102603491398593162398739317344334427947844029843540621897547082716967267285286086227255034044222917612280937408214149645699005643727644027239999997789724357422423935120674874708262799420509411969660535187315093553065000790565517535769427338692918882249946664488170641583406635227373502217028982923125561321182147198392699754510926843, + 15969079226966183502382475788401338523488393107499291032002044296474627394217596503568693748659928310923714663501210832583018731196547300812154979725769686288361401778491755680431944887852103221593745623856378860738388368922715577130878948380171217565406616753411777571011139446871620361320986832525400727639941640937364793530207582464684574638726091525574744197708378588020682070096454926012197394347212926657909811288708691651092564968341401161265195710381753419063864921935963903871011102644256286369641306466313805437318014970058871604639507243703932226939038829663830985880788590281053591951619664726739953671018, + 4991965837400033768069871541004261063135140339060316531025599789490182217840042887067892359235887756385798984623237629620830856274859128458536333773291056510054624668039972342087961925191332459597054733496082441434562377800869508105363637144128472861641912914050632826421706717769073047295100882343425757237060029497292934794235607113222710491355298594636899811931946648047811854321545995037508110462735244536402582555614331492107887985617810756386029525697146027973237905139754077084275404126435090136074550061845235250362605148173730041087342012184590101575852114035899339078096801167678750962125251280492197772961, + 23064781826724373162059309790268929175652024853806919970585039362565178134882146726172590403276064143405780341854075186376431326467367967581674319153076910116152907650926195389275015857432169732825486479963071595528043281158690951801576413614814760292960443710324174730418861380180819802157714395735784311928236401433597447641321165573011917942945482934111736905171027083754748263370419119297225245442731766002872688005764140266867116940180286239156118891196076208004108028110204585118322786319227036687507415330523815192275901354672284703528348057050369197376684323825935099945673108591425248965307506340817771591441, + 11624783050789373146135145081851167787144912685550655481254753886486876945039110175782945406523699017594888407389014880101840909734903251718897005090801524812985842948051908677768943122267838594824514706829210878634123695856103833890298708489700110861686115821849284312876390414092087922712380944749991516509300532655840012200292315982914838173353675847647411050340787544373391445319951232858137394531780600427092367231102522845204917484802409447548360146964783744378214393625590646132406343132441415352603518333034984771651345199420810327304168670235976704426708270671344968176457707557409261114405916868900751036145 ], "BigXj": [ { "Curve": "secp256k1", "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 + 95225479287625109140551300097635441933915975782583911515343531112654602880814, + 113745830257261593369068705146261698861441809650110061237310141136031506190085 ] }, { "Curve": "secp256k1", "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 + 19909020077923456087962021369246692987785610885502332606764981730113023110067, + 60076350170225224442893367050676875983156697199114782416705437692213004111433 ] }, { "Curve": "secp256k1", "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 + 15656029217860558075932288367874977299995954233140419375302609508233656030817, + 88293512119423239639079954683198441748713533855873639211876694257553830935691 ] }, { "Curve": "secp256k1", "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 + 15825259379483050804368543653451724857970141958098760943464945060863314262898, + 46510254063758718632499733093297318465018983961512441577134679077369278627011 ] }, { "Curve": "secp256k1", "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 + 101163968142129288084264305494084191253074413300747651525777392366080313581620, + 19458713537429380315587854195885123660811710862685360770347430223563133437479 ] } ], "PaillierPKs": [ { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 + "N": 26862170591381186117144639121800907711621441110694985906073099493104224258631997616337459884349048315436649598594766212786190249139720542986841637789367089751895746802368064104115662988051298443105665522549043623368088781757399812306242052676963161647378421463432813771675598887217547787422261194939872523185392600641669797286300834348740665304662829760721139573070204170902129262797162145018079946053388917283347495995703735479819366865064178966988962612678607190805087224162314010583832802161588455461100682306289046720947974174001828045869589748392310605782826097558345479795972515955139600004112610785604729710757 }, { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 + "N": 28569426937909813160816852590974326182398707183206563780157489308279811863376093908221211903705518704565348072663191903836343635499091979154072341420741676813730020871016039693403607409462919125031372066954550208350129974140220983698064393340951930706962427015297577648437601064168848334164842111410896962654571826800302294766234904003147622246551178854009373086133349568572584906962173774282191211244583738166117722131851467394725949126097483624199330170392292115956857647929895014719727669500452359666570376448590229755339126098108084513655351630004806845329610086536348250655270492083872210115099541350980087869489 }, { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 + "N": 24206147216197161168800749713794253097360175090858672931928135053300720098263302199858364218289609440982336278990382306871237304598903324389321581163067390799950591531027240968685694116269131503639449889176152844762069948482523881916749982047987022468266212702666839762407435492828573898843940379718086699114362935636941751781265771147161683942488081675636897258681038605775448214108367751993197065197897191643383564344845162403884453232776839031251175853763144050201714908798915379664014184087913029794762586324582687266708240565299184055542301695610690632283322864399949456272972805575542427101734659832898527078677 }, { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 + "N": 27422133357851370316963785322815189604726575748114057717984837411771756070272482926958898758576215271907291562151935508777240048370919087691109363558754627052939183040039501310348824807217194423462067796268979252972390229592512803802105741520833681021737552492269574490364955499455488503619050939812934483556240372784852668293634144857453177818024665828049715609921864852313661181061967825839048394234894185931968992541576874445544364635775263264674967563604397356712492758200667296917972566268326712277912968541425534456091226445588857731271210711997226828598037017820056231841183710665446107873358077925757871906777 }, { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 + "N": 21505960474634451313164479453847246698949068816168543450757887402781638444470085463014709362627652554915905319404707097558936051290374460876928738652082570278593089424429424860613076608894979923762290356343173648507348492292368062802168911752824853129719568062188174453668131066706292448200533705323966142811976260936406546600112652090553738417255733994944221554428167638466246670287061019896463881779810197390238307556892485807795138448959345532929528137209046373349550262355661974463926686395148775662060236988349400478971416621513539908477667503550115870803074998306032371456267566517610267867391193312424397935929 } ], "ECDSAPub": { "Curve": "secp256k1", "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 + 76266489189895419469020567248501927603989841769205411177925179985114092514949, + 17959638069442050620236663888410692330316152082152911789514411031446499229348 ] } } \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_5.json b/test/_ecdsa_fixtures/keygen_data_5.json deleted file mode 100644 index 01257558..00000000 --- a/test/_ecdsa_fixtures/keygen_data_5.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "PaillierSK": { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281, - "LambdaN": 13822926903761915425991806787022296876673637280298574187181015571701534278652007652631053199447180321248939929874699854963558196134246350895193943443151431422042122511202332317403742424787010441960583781352794461678477392359585612808175627667844838262978730694267730014763479608025033332318224479068401817691630317281956539284029896499413015043499477780468259592173756823084780979991370673887470206640361888539355027391418934529588287917092612554657813057572079119234216121015154613699565307416552433204524405360296961807773063506319461951518053594093567313716737725198813701797613710855866891889034943445900515509282, - "PhiN": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383260634563913078568059792998826030086998955560936519184347513646169561959982741347774940413280723777078710054782837869059176575834185225109315626115144158238468432242030309227399130614833104866409048810720593923615546127012638923903036107188187134627433475450397627403595227421711733783778069886891801031018564, - "P": 173146417737143947811620441732123846646663763946203427509837572502494853528075085025727224210954950990246596429663742729385959893315077659627780801747839602732838019481647166391905555650589327075298123059659623543961712343593874611308431976728239065149653869788596952732364167071798591825578312043713566813599, - "Q": 159667489335490594795561210604415192214287468389610273552985602736518514013833801609958506992976657891848951747994142979243442952133262147903389002710651727022246439866114102645945094731415050243980779298621646867141224398739616089541175593018638580984458619122811803059875903866467137366477423164448598893119 - }, - "NTildei": 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - "H1i": 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - "H2i": 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - "Alpha": 20094025275149855978464846573748312103454817735460122171576325595642794678592083947267609139367748009285596449340625118152245815130264701886979043513913887852946304912554850669326968426806342689162437408021247814103729648451442351384073134235104910383850669683208105501801119896898556924213562922175186426731084756561637286248991537765034205756842752995641576886156642652269364117079240220260473612361871879040912072434706979681170358761948884331833380710097320674161644729733548864196447192962217252447257043835793533569713765114286237393473455505462445281889316781908769589054909676311478851911874589642875149652910, - "Beta": 4282167785369240723427881993615724669105463175428067619086127570758025245658306195700954511048850340285115807455911111571759865057144562795677667851951343105061030518347507319629274098403680686829180143726462832655078426726943404287716610267849756911434730724073050292295297501324891598554331392390260628828127017287731689254343488410067637398365855630791325261764005809905774031387857844760021545547432307165292818585704424504693904336015409011792450214875252845664266067569721824199899786245266836397779528575338625635504068656609579555613282306539104650574569979738744470862995755345588223336620187067736787706335, - "P": 73386498461244138235280052170167147850012607016286398446618367730607745283747630597743682049272585234668854046630435041188641814847345012791518281034432385823270671593762235675748654370046064158753025070944663959607880154179044263205601542250751461250291487944848384808088675008930219118767023407487729383041, - "Q": 68629337313630742440709652105552418941728394831426857413471662517030977420461370051623404015423759335285917320838609839926091893822423377623472664958378225243427148357786542404811475864948147935458511290587700537022638091835462179468415162748632340780837661691045321790804937715133258908601987185916956419253, - "Xi": 3512751182062698005822869601551121346784434601092783145393818411003162116901, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823751, - "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 - ], - "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 - ], - "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 - ], - "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 - ], - "BigXj": [ - { - "Curve": "secp256k1", - "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 - ] - } - ], - "PaillierPKs": [ - { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 - }, - { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 - }, - { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 - }, - { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 - }, - { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 - } - ], - "ECDSAPub": { - "Curve": "secp256k1", - "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 - ] - } -} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_6.json b/test/_ecdsa_fixtures/keygen_data_6.json deleted file mode 100644 index 22708e0c..00000000 --- a/test/_ecdsa_fixtures/keygen_data_6.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "PaillierSK": { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041, - "LambdaN": 12760614807450566816141209489124729777016050735439113324157886385986870221405358825921398828720323388942200492383320950309551103414448564515383085143088743184950683582083010453066203341595208331035873726055086730172238443697844970438597962697182194010255596445823012324166360656020954552935257094940929715312216540981917058913907188702310387558918260101220423662196093781947881739056808791424827778903442089959221113639285045238033225212175576820799271188773986176434083945687247101126356577506151110996102549214021711054214696452011473196583990641293405698558836533924375222703327686931565182596388221844143070264546, - "PhiN": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624433081963834117827814377404620775117836520202440847324392187563895763478113617582849655557806884179918442227278570090476066450424351153641598542377547972352868167891374494202252713155012302221992205098428043422108429392904022946393167981282586811397117673067848750445406655373863130365192776443688286140529092, - "P": 176245130878730007505671684939748011647568877182763462087342913227988359929264911153161098555976835937689278210738251868491631712469073302741339600783701439220545527412314851880655181769488787521045717911851838859216151180356891339538024476185954013310550068663738576796688514116803748801482656737546033793147, - "Q": 144805303202740231529106258134653448790061563532899722692394227985890171566214833081116428642489350888934502475862454004928169998447532519045293216761779305584017741601898024568457644895809104663769426768464084779716351316466556366753598161672753203249316324543688188597597329109162328367429618618082061681803 - }, - "NTildei": 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - "H1i": 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - "H2i": 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - "Alpha": 17400350452723567990033172942291521277878094165740577700285544474373815943032701320357513285591800126168207535029093960261796028721827845491813071948119741609551629575106591115973412033238837435312886942056761454430692995293647860388290773332783214047961527881120857936292406347268414879805273319126697420217023818217636266040143058021204962437712683728161306915624089925757771286378501207363652293692092542752764636858020786748752350952558870484230355512645473110227414299838553928230480887652210566172422420123212968080265230916160868639209783006721292183427312339803798992820971553031023852330315539729244616775087, - "Beta": 1888065178064062755602172022272664908206769049353735247027193298194545286235637431492163990590951475490736019562245693123821718357641611400705002795190445826027547760873016222906002385319313003165411949830482694664445454212750930859591592879945835715987197706347621072470025306606069581665303725026536734630492797353851927412422352751512922203814942903753367519479407620585217411722304813297434173202308870967510699972616222973954905120932668297311095051186299497512608812893293577568841059584223848802329746059941561705887953769357145271600454453306464558898436070676687396221726222066949668485017059166626793847296, - "P": 70511962912721166999932887285289433779950311841279046812222897837644326680045570903143557583389066004010752052704159646618308935395114767580976792238948718940799454175806834872273464830459525188945395782718691860113686858084564430922522015122407654633708735573700934749007984335117599113127201186769899818573, - "Q": 73089845727521265954213178688558567738330964566750981104575019310258657576976255173256039708230615261327181475777505884143646661473990899210894524455876074404854812510869065915327583170315235599280991917230980840440929607619150648945306860790939138109448925738330795935322704172379818988655567530054701869339, - "Xi": 76808136947851412058428451738437245033554687091810228973826653419415265386443, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823752, - "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 - ], - "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 - ], - "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 - ], - "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 - ], - "BigXj": [ - { - "Curve": "secp256k1", - "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 - ] - } - ], - "PaillierPKs": [ - { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 - }, - { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 - }, - { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 - }, - { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 - }, - { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 - } - ], - "ECDSAPub": { - "Curve": "secp256k1", - "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 - ] - } -} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_7.json b/test/_ecdsa_fixtures/keygen_data_7.json deleted file mode 100644 index 0a587650..00000000 --- a/test/_ecdsa_fixtures/keygen_data_7.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "PaillierSK": { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393, - "LambdaN": 12674437444843880707007483974760117710398386565739927023802325595215459823097436622309279659684543617592788102700000126184711045780661759005840360983555426326916750193435381188457276238363092226798759189589592746732801450582284503772136020156602872309121525614674233108668109209715816939399868642502512993542084232750988383696561647895020578183520426321364161913101712726463373043202553099886495774433828292027730133760390023040408262843432997055060510901230961145768629957306123950935915064749062619822079425893366383813151474208050777033843101786581597083514438406099231502094175831808316331607990446646400650079594, - "PhiN": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084168465501976767393123295790041156367040852642728323826203425452926746086405106199772991548867656584055460267520780046080816525686865994110121021802461922291537259914612247901871830129498125239644158851786732767626302948416101554067686203573163194167028876812198463004188351663616632663215980893292801300159188, - "P": 148423036547817516706959900324469905255851641912152854370976222295947315651575974257194573744007261100188568962824855858873323402465483323059790179427003515006497586946070446003671524739876114788847993252124349515389469026745427739133685057783941945533717879762132594630153633019222840710705558757073839804199, - "Q": 170788008918825097236106151213015412369732670701029468035329849181236602278998819391534244470554558111517157155689427285723437609260774852014092865376273083291777029564294619735708847670647199309900012590067991271846908017233219013610082303345715491618084686351324223285595630730695205832796208873184698633007 - }, - "NTildei": 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - "H1i": 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - "H2i": 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - "Alpha": 24062431865978569387362879565797733140814626162329377525446229003044339137139112134741282704586194799926256390372647636824519074854782821695040622021249407592098631809995174565435721231137814427968245504745053423923318954698837591107560661636394103991572974835596091201265331545319261537172319152683538473223322435398813439575182595191650197092854325558031644048567515667528849191432577478489995955815957649500482225743133637971461784180839259804221772087399584650482820043031323692119635286138605004713773954252623367807918020583380921283016093105480070589959032568189356858089825014189865308111455944135787857749199, - "Beta": 5694212343259026563323225346167580288430507775038159560455709598691450958773370181279607346163836320871475994111659639151845321377234758841632269540350794121826139765730046604471578931166483804343667222293078109741456803259799730664359587218458480863544413101758191148407534708850384122918781257871417027713225704264658973355080186625273515120967518568165244674910179966019116979107647611317710142567660750499375759987163364305820638471782249860179224218769409606410215370290713984323975269623762411574139543891566293818645357534448278441585485316887434803517765949051316654605204308273988814659319899795211830005661, - "P": 85474286826802528774554880098467841184840545443066888507727734172470125620153479025915746578724477284123315531744182613183755305194693779752680066876167415211442813178568337682911896247955459157398712887635967986788680285142356249219032655086064353307458382219221920041469448726402117651591969376560304312949, - "Q": 77159237292244379466950554392143860771993915907774261794348978899146083149941310856549439252828464758510225514913834628317827693768563639967800411762394305668083221212630492404194542284811783310307636242530723448797498851096926021142254420405578075398459095891257753985624753363667692244937506834238331446723, - "Xi": 97812156165675475199836590005814662001747486492845954284232388911569864989308, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823753, - "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 - ], - "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 - ], - "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 - ], - "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 - ], - "BigXj": [ - { - "Curve": "secp256k1", - "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 - ] - } - ], - "PaillierPKs": [ - { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 - }, - { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 - }, - { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 - }, - { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 - }, - { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 - } - ], - "ECDSAPub": { - "Curve": "secp256k1", - "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 - ] - } -} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_8.json b/test/_ecdsa_fixtures/keygen_data_8.json deleted file mode 100644 index 1bc2862c..00000000 --- a/test/_ecdsa_fixtures/keygen_data_8.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "PaillierSK": { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137, - "LambdaN": 12796090313326722104868643895677744722114339551886010134102792187690675642080331032389259910871616392014358205787897062771198146577199766306318014828233439886009864989339488280158737181313795336190017029531746071047695041663829988526782073004127542975476953499423083761908321795993296237087745179192453795259501203912026705258185119070909512257970918791598012108620608642857659946776525734334706266102276490492041620342653366451586810347687330610867548736741502538113426398099967050430512511680239533000418494285572046423301148228722489153150323711588436440745844027140371342113010339971021761076789989824559525929818, - "PhiN": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519002407824053410516370238141819024515941837583196024217241217285715319893553051468669412532204552980984083240685306732903173620695374661221735097473483005076226852796199934100861025023360479066000836988571144092846602296457444978306300647423176872881491688054280742684226020679942043522153579979649119051859636, - "P": 170279728627936899636280877811471529072867081632552609133919287487433245395884367992819855457779970809425783325015536501750932618561509184297643437995632793903253035714660319094752836258590821326747208102147865634753283678123770481298966448660363399807883311874817968354435782615791341973898839004517925191559, - "Q": 150294934299388293213275937506054905715210509502608212004202311674205153954016145048894356788163662621027508448440072638722775611325145086531209672999815240463620735495763204288607189115998237984170168257504859627231664317728379434037353992685065647511304663172930148492692016174890537673178601386127216214943 - }, - "NTildei": 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - "H1i": 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - "H2i": 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - "Alpha": 14940715374117906040473481378960898299613073117291422408190257839243703925679304295711390117414083360368471263003062983420022290408875516155714423705248294189080925573910294915695394218642043865503125113518072865785117797305247422708193021745644576304590565952236215653249920606179909277525853369213933254598860500277415436334109910587449953090801478006978754929427060506284337613359100059502485673810018104074000476568277813664889900799679802633318255512887114433947055098030017734306316357491566502260780572228134253604863590484681276803003956494619164927361974492611194157708287583905316994809137190893489648795644, - "Beta": 5772494466630357274782019969049459828898248939521617764606303384767539551045964824959155865288126566749797451993586041578192987659364262820067369482156331820897790202456846652013292416310827942978405345895774376106676741454133722807962581191738122079560581479776332270212439609978563897492282808391394921589163623447482434476194695311160581168476392563172022558515332883973329575004402908905812221272177026743563531724834613303012765281005568395747638253660265112564226775567636215691509542765880323557210911257706309149051409993152269128186317521878233490695243030444198002932869314737945586102121151592844421084482, - "P": 77673515983978283199188595314366230141948141760662264440013680174886993344938568013183107506471238692869685985666489426846310841004125632088029838076882461917328982515824850292439651072666954151294562080518125309832499155653845615090287264410488362219707489089623108985313196526743262179983839083946241967961, - "Q": 81572956636830705878733053716189585655971539591974546528311816415157880473902689946248669860199330358538408836631738330841492092134937841808951761627780638946991527346743190590812366618557913637504687926253800492908955990734355162179293104406898107410923214948554132171829532885241201069500796045290486686431, - "Xi": 102924960490975177218733800279730587708184553108108823056959190673366146076844, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823754, - "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 - ], - "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 - ], - "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 - ], - "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 - ], - "BigXj": [ - { - "Curve": "secp256k1", - "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 - ] - } - ], - "PaillierPKs": [ - { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 - }, - { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 - }, - { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 - }, - { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 - }, - { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 - } - ], - "ECDSAPub": { - "Curve": "secp256k1", - "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 - ] - } -} \ No newline at end of file diff --git a/test/_ecdsa_fixtures/keygen_data_9.json b/test/_ecdsa_fixtures/keygen_data_9.json deleted file mode 100644 index 0cf3da56..00000000 --- a/test/_ecdsa_fixtures/keygen_data_9.json +++ /dev/null @@ -1,317 +0,0 @@ -{ - "PaillierSK": { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313, - "LambdaN": 12341179534183595881870901159820061128416141889559407340862638589120859941601642069938294193203512698456917381704983998586603717468922870815309809013905382544563088196333849249693695618454389969165422375745091346843553127700649544271192852651072903507757048563694695742089182120067616466854671531569398519273247923724466609661886544142863270367501005507264159076246412688679309970028914167912510577158725915406546662373396466406576310830472864121331212149387446566428486969597433864930228682470241061400488434563174968029739549703581340917497648373893941771089835268862257120028903382899411835309293805314065063150674, - "PhiN": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546495847448933219323773088285726540735002011014528318152492825377358619940057828335825021154317451830813093324746792932813152621660945728242662424298774893132856973939194867729860457364940482122800976869126349936059479099407162681834995296747787883542179670537724514240057806765798823670618587610628130126301348, - "P": 167585091397985662234340747964309502896037410721484935623720892462453957568736845610787107356076934975756841729692786359226317116686940558454684079576744062617608368346419062625418829819740249557436244132526161459221502037366790980661372764868876761683881339786709603943735199100689877971832521518079452785807, - "Q": 147282546809315214300753023478083200925965050389177591499356397132719954996670958620155346268535119734898939140165222414034106336565262521604955652049353075158013107726825585436986170255067009026230908748535985706470255287607317647535776795729086405008962965426526702579183909988426862592555321201714747824159 - }, - "NTildei": 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - "H1i": 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - "H2i": 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - "Alpha": 3815675439589911552002845622292947844681859847115511404930358948899084510142665815459595685618140024266015393104605298516001093753385153546932140856786440275884680774724980085673325143653512118939465532585778894841233442889272045044479796803503481678081285179612676057394263830228511779515055834232281333877070381348431473806633365003336080365440404931656763791958308971783965745824988202818964383233390762252377984017232228754369680403140433958033440134651848302306218748422173668363136874370824277486728821045703726794093392782310651416622374103917820854718903900613604502089534103784948240699285283736646723490565, - "Beta": 1624531269475407576613503986713629574337979321512144193273732732096767618684913003296973536107242602321246211796470680211727467504471135429937388516267361671677023225274263707213941368477183914520269114334502483010424981568291750037033220155777755815349636112710987313753234463177067638897243356257746509322770310670035553883615837127905343404368107947577611378257351377391336693451242981743273947243730622860533281369535619396095651396584971668733093872753964199819027861642780282590846779033343514077275673444581807264120125431437641369966948761327894314394417860694112172787662605428269344853640180895791359747266, - "P": 79343325154133801936090133366397282895256770947414664757452313570706406951116231447718758976924985144888935335940475474065170164788188556994576951638696313218404251757450786481175768075207443667158287974219641514601656870269231597262788647857666517675597235103789085737237051589720000883165355859703178898229, - "Q": 81786146051094761182006513257679407901530775396001831849333779407475752229340665732790106390569585080673969491333451283150441744117529838634692351445621469777191575562875274056594815114918026905160861355995962427683973942576238235901602289006167509701502534563032018920141415898470147469788573030728131207839, - "Xi": 56820974658246231286256494492316883777337041418355640602622169910166529340786, - "ShareID": 45004175186998006667515890928553897561808875219138104924952711782631838823755, - "Ks": [ - 45004175186998006667515890928553897561808875219138104924952711782631838823746, - 45004175186998006667515890928553897561808875219138104924952711782631838823747, - 45004175186998006667515890928553897561808875219138104924952711782631838823748, - 45004175186998006667515890928553897561808875219138104924952711782631838823749, - 45004175186998006667515890928553897561808875219138104924952711782631838823750, - 45004175186998006667515890928553897561808875219138104924952711782631838823751, - 45004175186998006667515890928553897561808875219138104924952711782631838823752, - 45004175186998006667515890928553897561808875219138104924952711782631838823753, - 45004175186998006667515890928553897561808875219138104924952711782631838823754, - 45004175186998006667515890928553897561808875219138104924952711782631838823755, - 45004175186998006667515890928553897561808875219138104924952711782631838823756, - 45004175186998006667515890928553897561808875219138104924952711782631838823757, - 45004175186998006667515890928553897561808875219138104924952711782631838823758, - 45004175186998006667515890928553897561808875219138104924952711782631838823759, - 45004175186998006667515890928553897561808875219138104924952711782631838823760, - 45004175186998006667515890928553897561808875219138104924952711782631838823761, - 45004175186998006667515890928553897561808875219138104924952711782631838823762, - 45004175186998006667515890928553897561808875219138104924952711782631838823763, - 45004175186998006667515890928553897561808875219138104924952711782631838823764, - 45004175186998006667515890928553897561808875219138104924952711782631838823765 - ], - "NTildej": [ - 24690216048631648150870070003479916120845796047496083134831509645246533840015149678863117928066912044467368348270270403247812483749600412065715926741364554312249876642258048501930032402662122294695652986203855798136178609933540424756757676664472864464225638405277151922678189208331160566458950415585532778687880038320048590190536021982782742041073603582202782532007856941073666326728103305136832623672658649518059982494075983892554541241398239349159094311585655623992706544011677749443738459276934517593242638321895093136916476341566394411954067444788745723910516003233407674375406143672961444983776687116252973355193, - 20501578026717702095397218338661158438056245034338648846665047600684236463381969517992904292508334521904389388325087314847196985806134927334589518781445414601171248832947357078983292602006108503314133892782036092174992074349832127597854167296510914833061122100058917838694398005989212106894646590997755344789353996203833436367099410378431673572090789490624069573562164419383553362730723601243643674413546984193666106129400734564799502938133306246881258905987084455364593652552666950652036684426545746224631767010493208081082434836416420942654343087402425452224031775817246948476604680720162164021145088912353839293849, - 24179714304502595106572790631162518811728503541675226813389975765068636028164772319965190972346588436905316405934202033671229893337836372702908114602889511937421620756827826614733671133426390639336620906460113881907477995948223341479800872711361883617734965532627258974175265038174378987478017426139646439172132412030641763270396800851525067948069278131028525397914862898126764094482439309046038512099730551431677615733969830279565048954219508596528772901981698686682448693727091253534646196334520598728464360663295423501571351150985537787800218145869904979325028996349565602596261148344271835946423724499934228387557, - 23294751567831296919891611469335528809450366440191208134929303699090016532532372300709925418315770554536501656407367473712253006624967941331542490199972233757894262758798403004790678768899777086553229908679478762236870425130126582714029556621313952130356024308997272030991356036128919752390728129013201923485731169286845524365956241060005263822633687033297829034605403156873249755833255299079603061671705347795664065943582775127370227040826601763227931391426976800585804671082758272051337092570395726585972348188850962520310014994831823928820655707319940145406012100091261805779143057565176708510622227022771358875857, - 24163277493117446730574252247266808329789856575454587164242929635981471878014429179898487566851655561782358225548639961772649161469458452537489791526280511560444384422109486331536696997364168676951211148965210016894944956605978831414446246916689197883303834833655049767605123945153096786698820903371031531686826281708986188315045309238420194392689969109355612545883073431655360779505727720081976319389415912421592473525765665740177548408094746451969944044199191436439929302599556953346750727100226349213408694777260405397373319629474030321763767264379264826693864384490229503869321659049693688153278204078347228422997, - 20145867028651869598990462054979991820053947588460530537422068841365327282541654760406029010383658366393273617078376601606464339705451099497812268933936948575608272081122984566204004474919132014379186612625337850589785689465733978969089972646265619623367044019747737539893254701374155701345870852603313106861565868617414537091591442679589501513999926191504469902717781408569163980992212160696143088972881617561918756544186758505208147473025645279506941730115037224629715957601094752650332472018044882162887515292270892582477870634853417157319505215348861380566195693510602953338822207410104670590023513961810267958081, - 20614833964941964589694568066676488601947206916006500472571379102714839188490098424448548575879146196237427586629468864620737090519525292061367395177676875893391185487627095943783629478279567255384964981169832958224015794303566645228267042012765811680631267471593599560055545052432342806649604113191594903790536394043291403738329856922915859485135362119807820557135773260161493161064510168960186025631544856972414313722101824448463943201703002661726992661822744223727295925502102225942110183308326684528371412024327656073528733835721053045119316920816679866103514907268027762777637689884030058358775657528449409108813, - 26380523118618456735977003041688980494120529620923758710057035872440966992784351795307637861719242646021274958697702976279616908968743695243905143727853301073454634160871555001075369854336919801368436214870739738401635076940508410749602154373222540677826929867161071044775855861517654370390761038301304042512418308411992709201442145364854330183069041702119047317340041954355940607351084608809128601599565614909528252901711874953356811146007671334475322249780500664556092777286372270830603622066288151581053402443391845148427562453599286756841948466067886801093420160495483144879434652666420018471826495718684121583853, - 25344233404764948850091580836736121406368172535837253524785643160375263530818548032390350089082715451779659908951381088883911744911379256615201907933910795375043394889804343918625158714369924002105108412031151690768044671590294683856588476453425516638568519317465121324377253179837175537703993304972197230263233835488000428720605458251572643137159613344093080208525535565071590963864582061585490445329646307471163147508327194557125579165782879734607824882141612958374517047356398399198577619221559309900799848036142039349645256992682805751846047680852284401092355119097844808785938588286148402909928433670230879057549, - 25956739116941951515267628200734896736660850938999072622489949941238486292086474179090596427382972401021885601227284343497317658618623528299232131484340902277091198215535507101255071827896456543781380353801144283991721678532226446978028482265118752641586985452604544836869206463728795737591422923556080839000016344209838112974771764964735569175367986200884642036356344633987491442477925729340809255840663974436945921855171296832720852010519369358383208936577393821078636334757767574761620018997687459873130266772059375425865099130936659407203267417635020682119036086670787876026090035329583898687652030042378732280661, - 30561468263120060582541337459683512707940695621528798370600523974754661004283766897984843770875174986620809675704645002936265618123573201603105204397169138174859308657869732266951011023689374137183567662310147657849066663354606321193247164422733659580381218507418996256276337627549628732177317879611018152732253852371411340746090895369599510807811011407499758283145415521926056030396530423719763884250078575780579924125456220234652551933986924310817844270091356924775915304570077389210672059409562143398761835261487225965009543784095745325232177159961876774444389455834439863685396347444130191834333551838572458991257, - 26805940734676576629239255169637708014476284542296887505826845062213615395815239161436454753505086292821682792631128569479432258256069966481677803639965548929622625616959253212517838471100494694653522127034645658183822040155053495663994563073865250832776006401924511609960320600644322913325180232957765822743065619516170973768313984487242969617862923052456867372658085792403143261946439652000427768088785776207679383251515781187442097082262825776511389439154856522744792629363491422726501454630591097855589251576728458386207755569388642120201170769895000592032656929715484874759413025256947531955454112762321206633261, - 23654335373697002069742991665923785950655362332396527453393057377159642636268457583055681757550030804718180858373350703290680509971144486564575594421974029771706209182934137072285623283006057944615271805318605626660787376538637725933308435787902604252453875809819378559096962965750986194669174151089481430131926747273453089709373321302540421250220132722170114646803349346417911765147364540421575318606645502483526910589549768037031443990111656783187236559885745402588762312404941054539987448752676639305189128539920189863933248692934507906444456827743664954207514613600842372432616204101859332072795783097810226872733, - 25789641065554399693007154512847714959863478489304368655276992006685059995674221249992468580672967433680081426967530747860412489470612893303757689245565061760804504755493866413442266374611218418094056750829046935764651077658147702165266078573126718074568017406171772953724353903535210159381964536008162033432341034985079417975817845931977709679789689652460057043690009538013916445797188299739030541184525545641695127762086585483024506380280301081127275783036856062371345525031948334984352831660049164933841085588696254087270142491230816651904406005419386038144638682097723956924839932878452025655646299640095895935597, - 30820406551412923462867695582558443891375621485677418969970073376864085306854840221053740310571244307384948952412752161149605939327262891543890187475082087101932597130752132143577401991723547307945262763071325148301306337096392711354491749554065092282673928238794326868106666031615771336476996623311742437797018469830804824020877833992669457732388264708030582355768612216165297928359437271077670663512814179998552566473394319017516669092586487445846667529811828852772430464236196878694294142358747866871456779994637574329781593214100205036156744003579807330980482914925021386369292302840460405492858621250033607447341, - 24949282634190829174264384584598605981898632484330615386666462337194170869504017322608615523456410474673891635606925000173283646893427187787458016326416748541622457394853164580313889144525897882593816073670309173566763097547661705466606286601441088558480750730176690371120693752604490284540957019179923258339725667559431609975627361762415185202468235770040594104201697195500467101270527033706415613001991269262361607245490938183955665489168280381118962402287394559646532426501518248526413148460825761625057368070178347920396894995198371771219458861856230829327289169763770997244703488575443893764212880144866541553417, - 23205968917209064598770776099081822176365496261800645404150201768606182798909182269499310582953040834001814612196684614779048255141490738048337909381995202545430904831600790058461210635784673355880921865335091049377219296944517798929535202054753871408577494694219463455190995430370952385885278997046558711668000244736653837940767045664713076709626789260457396482611267097674764781826153378130505266574671836920674803557515824954141995792403035917063085554492042527118241857092345041326608341223697156148359678059592890171259308784836786442980632559585275288918404616505549830014905337917035775680063122816892865632701, - 31720894247843445041476282151883196142153010280351337954060224807951954817378770665101302224577182727861707640919280981149711214915347263919478586293198661190838809985647077349624821359531932751931814589709302402735590150824339594935579431804421318043245250475655033940640516951532205109101032537552298784119748686437851667561935237248807319010701636881739828484788060716369913635653619435225716637080761724157527704430551419752269596017223013900718314034980911452726616258102495978876527707340673590268969137064080740046368129001623754640034833436926343719592793154502246883413678727255344645041627687464876753208489, - 24541931914232224596136742967574760029991381345527233924281092104919604019034946774546422878121380580674740548436411254529494743548243827680452699758405058947292878492227826774006447379813367138203570604997835140095421924167997151978653414451214324078728311181720807960797831826724382311598374949816315052153287296578155587538025782677576359982775270746374031857807635134063416208342688856401716944373485481504595221775016685136047438450603683351755500867394945239468066405097626227750189319582313912867326460045042718697532423984001147804159505160301020481805732198011851934680876042164961410425842748922845837602657, - 24320681179899699406386881675265038313069993751174103701779027515688862448136728392291277761003452769506200085756591560739881961116227896154981644860028432616305612266210595624453194701501311242205649002392901994158739914067963018732750596418603572267779153084233872525821811778386398658867797271201213670498043384182010026353066515310063556000964553104017961422510988622978311623907476461501510709421498648933046341848776727870704420807336789995242912241428286793288866134694274655892563889917520492865680523749425301892873827346183345132261995945697035749106501835194119224342364241763589894771757303947687236586261 - ], - "H1j": [ - 922517016274752491438838704957890537227962943174500143674707128833984181923842895078520876979432083836329788004850621550735276754092054378060927032288898307877807364872785968953958434182695969560464175559072916590385704652092686705847853579235964618176445918237072610282902589621320749810772626681120271367085523992569342416956217324343908074346248399254187047824109794390535190653644335125655390894514652191455573720234088057255127789548293810068125008004381898275872262233223065801450643279114092937320069397328248474922822247162035342077281519579521737581789673850347389851031033705154619936949071799950176102756, - 10207833569361792291350209807909112205145415786946991549694895040452856965420012811702917671949345341772508667534539773371833239662956680249432989022906803100623421234805627672014876557252830039798278571956616056642252703274242194969855862510851992486560150054196066977178806533503528698471156367164477789885746613772505487065857387649921500623593745440625195228348518716734390947813074784657651612859839321984845985212040775276569268583154244053447420302500506685824490870907562176246114837445326955665503689155026870225610752407967096463900846054637889488383191253737687072477852047862162543691594400599591456098922, - 8396071732060818477703531422033744763894139188095254073565164360864556048480217484587022660386519126037312841056163627495414497747343980096310625334654304535752929255168481484431392499667310754696486248699709920038978632035112438144326917676691482819175590684849770145660735645056540245647478916463087960197832709265944284828637902670249747153734918616479278311492527437202295634861015801190050474732987056464017613858881106573553657101399609129748353583423181326682822255447722956433344592996444410963221750287494030025089292302729101597313091752040615248601468112259029301803053628001602726087747745279016861428782, - 22984513387186959302118876420612008010831579499735033854009763115668531836737508405717043383361897150275285719546357392200548319393895556560634589955213029822475212067924839574029348461013156336693479818581705263839548553780360412681242046777498635169450260932510558180013747826276157657778918004444810986774099392362800712666737423894128740275312294520655520740529810215110340736365136331597421990080831540612291444041308686268110110366552723101791067249723613583752495936040134167557309573732920561006893087398257536268009441932465980495606885523958564689433631383097549650907575076502175502688186017850411453776272, - 19932426533312335339078496497610507012834813602873940616813227282059974568359495712419362337730408247921607335186251966773987410533191151072104197105537670231900772297522916945483531948292639732985685897465433128284691905687535146643537997110578901977310429213114160295255797244791161490125450581787588111181396751837689902698838813209230996040587521473941456461935237705460489704110725379655604573785203229332743149822230638441425064575718069094331527441390068544091676689658920073222657843023419373237736103851181165832944950547879371888334613105804838671846791612040615894207307571286276756808903363789106546318440, - 11626502639727005890031560950071397397479776571030931954251515743081721796509043100940071233238186250858174864993943070854864495842884515858940237928657979669239168291446840172069831295202861766011235705274941032030446507049326411311072720513440485517966462786709212726630393784040315250754597792930939057705107923815667155362207203025090226586753991461719631095864269724013219526673152926115019909229385343186070052576421135188856917234471285852945456160981901252005859968627962846856340266430280940560610224644836737691838803105969747102268630467604496138718328581053614191537289914109023454461035562606338264794164, - 8227943195668930715800250050405968144800050803511384757878680752149733877239569527335522358684092819108307506303580808677527068522653109775101512578305547018990942674122800010830238384613218801877660376184625465800110796499381386061582055359229828853429919362627948311320957099286314621175584504575472656445196753804861509014655275120417356970586608522699184035446412961645779653567774984096383398714321205528643529216998613135983479833487096163099650256465484189087027372822649801975019469500791042502696381090392468178477798680601318009343128298666348767075048159332856957252559957670009803696878942890041324705343, - 16602504696176444859529659831816454537425694395773847170292985401240150115237844491894532691181377564630660933872969198819492922720851888391448728243109307982780926065425718306276758388332716995412112885142547696768235311637759908907716701433960546689017022278369420815944126238056673184721145541034519526687333732303660897596860197340083495919222056373987225502661425926066021738438441454049728654554050165280346253451043957623238848625970189696953331882507698300874558296650074537474353722460182002427244290928203634924358988463473787497552874496557401566513596350469519426425338275147704909147893113226931835624475, - 9695916329212847100852565822388918734081123660878482874601683070293336673603715447202646932798688458833457901051507541494546286736735790884017580245029455170806391631030963458463320730757625356268303009592045834787830659169274890843346924317866196718370845331272018751682594110458590251008348198448472800306533621446672392766588937525540607972281230938222063452614263355865256943066666876787430138811539654616613028318433005529670303049151176791736751818548112917370167431198266551255955676384774218736586403960579876695949908978269809232498955330356201496376495811105689577750385449842817164572873292467214790050924, - 1335471668580831528097166048607377107599519685462925792132219239709913238080153773450563402559488205056577681792821823937059595540588089257491376399509142779670571522516299628080894572258881894472284401738053647550734943403341125618902308005680129423006850837053225171897164409431958900200950828510823340321850243119398020705265326114560031497220621016692320063793493163320474414819697747582492993759537087095460214968966820272125832843529386441468006958243444754025952143270268301538303996600439459636725301878529437169820345990742440086487286790359127214453283249165376332184023996444892537557739492319244038712733, - 16804739194550980615472455734785590393175000253174075453601702795361927481449010318892114282715891994658019865473785766436792250958087555312268729156868715123889499673960618767607662989589097851127216447230707184157239759301302909375535942538617147551814590423663256708827732891748007778413908410416451391956908210182969494265676390698764871397214495712576419221503769549058927514075318793348132641209998618772995725081895138602139142233687054762950289842744227797457970370981443045600174657939095391084353601234784783954306226600595480549597483468849334102050073902650472700526925529255682022573077731685292170164542, - 14775558206397549032296647678826421014117731589629138026992632648872003295856779582392519914601544418552067558715568826884769330842741766483186036016270171477225149717531222248714207755168808583051348535601024652365746029517612661003990653150303865385192795539023497501183669987435634892199571499996000528382295270685573106979585992957883951272241357555885307500783706997538296595015147399240102144465501119497608702857366893626073303882787357705813420012828852437849010379001779348316043130174780112425755692759069371115178196986229353622629788687556084707483618795036696966467013508865090005999700825007172150572500, - 8495580170653088116194880777676981206881066004914538659283104743959074351486633958471212060947253994605028925053146513751962558372809462092284337885902391194469992018414956900833293877184996221643063226235455753319303659797856931543840350905190499977041545004293920540168588661966638737169463018921523755627628475600540537045612733418245446805853817633624965946333316945962322323895375814691231869388306914869302443684824718654971416348328634401466338043622039728991990528865538784021741673841038632455352545421538046876817114866892316137762232756821854120285033953736443933306990412166087680067545999412330291381541, - 21199314385604471143012812059411183749602564613549910331709527151094572147914228252473540064365334892652490566089922840210471463044539199252988089830113502461768874420093824976285538267888691592205731775802481314715210990089366284887624094149681805921145443113979231891879434557076609610342854718189626683787778030075149627401613835894769642412615965412079543025474057366253786639925789997216776271479838293665435818346762960955405848721466382831316314435591022572460498866219032682776496961951421531640490582558965454031062282313422350328854301938002087858801027821006753329023224182817896649434345607433659844821232, - 11393080849681594471985827530904776010724872319244160498289197116310604977730961406337958923553622603305441643347968581995504672780074094103536903650615375355405827558810434981978120878967907806953910044343259508859015986015899603536287845633659305947694996211364460564894959544018243359997182593281092202380798244906773195490808277933918228027696292990887133466885315225613974415473620910229117744346587060803381519085574489092467676786734933127475369371295700162916118783817299052831672993152608393575756076609378834074034443838749730583561570746399932343176336467578129057569733583396200574520415136741288395229609, - 1577554533776721410671899846681187413390779891789843229824263279169270054157006373438024597045236814475983495170612535800044604669764361467064604098172694857192286540449481167082937471274234368893683777002143362707909888524051300401379235231580007200568082224782996592503961347428444829560663648421656269205985993495192555778807474884321586229844177142660234568584417482183462591255203564741479739913670879647705717544058023762038624859304882396333513346166521681663003598606080821175885735999791128502558379904457886161322695731983244823827160939452966299799939291548564127167117085776679842185991771270853031415583, - 22852344374103135626102086926668559550046735097040974881089321923411045646794513452268583740279920836393245648677193774710668873686070414461484321178300646015705042499582806300863497800991848811171931553887734920226285824759832967902600233914500965769733234686675709225491319004185685022265179382858145596456810859319497936245833034492141433247396973968512733806454798946337968038258496583105518633712145735269102837171155567495148149994346768346972952112999040434769370036071607309978551077979124756700518807751691547892067516918752371351635016712340525427370784857256018986078459027992320623523374777842330436850768, - 17544300551008466568181903618465576042698729189435799027319347648008818264008714211827872900343547214935206235084900725730717439941002353630253508869562687083149973571183696941412583125616589623140681846541043616998477964127803063712461571938849851497303403778952730649673740032667252308237868262485712759177455490016993478454945285086505133725759142317017730772431558033347516154070108121940495118234888356644828476092730876311852526933840819716741314962427416850496544858011853116792335810021114844027828460422642205731761702565424194144908679176411113236698145397100196145121959343403448803563042970744273649993559, - 18322899805262829151041617538466516844401657647152498243694704344835710385091994875702212778016615807151255112495428814049550584354639114054385827596997983593491003204579697286228532655208437484868255911775980012574054399445106749992228707022263715768671186477930632048496314489710059438246242638557258625787210297282502666355283281780753186809511000808771676548818848981905720264467887135789246285440383225465758130688443600950733053705285822797733651217116234216419572681271696565674222103490930392027671196020354314428158631255360798123572299968228478763172514027059357891410621431908301624904791731919374685427286, - 3809632635092029074605846483595866760547893836974908357930224812912334474252343815080091259567156663472065968144552999867832721208948133967626676040870004435002325322898544294890169787078068906073348598686912389535402555139139028438557822161875177362989211012378281301161059318577799119794656694736426550397712179527938096248361575337465448966324681312891087356180063197498483328955037277051818177713927010248203532724224002868410365335115473441810825237275729217105398853142468786555992610691103827897736873926878460139172413892442815150779558955623272537000279893690174831184740742525090646522757330773972640703611 - ], - "H2j": [ - 14166202999662395487737665465386307074885374672987925208639290597020629726016842117586376021240541851530156627978524251544561637806092791147796584660502274861649414284198662162706062017261921422494057452274539496834061740279851475814046594383023283308549042097333693975992812243162312492893169233259031155137956459769931486104898469578699289358140547966741613787458992566238522121752237301146395809912354430615144525467227724382302499764778773318344634406724916109592437037189357755904385804918855580169048159448006341042011976827185299712247974121489772456378550197952216931731223167000028376144648759027721568197098, - 8529750716031932941323254438356014564097566220577487837733784242195915820522075210731266510820936419355810169502391451669741238954378718522803184086972954317113978823683815957866952229361626638978838420624776948749193023064026795501402529875751152604128240732334850781513301518570321986613395097576497404764664540600144489765059804880106374483272037590716204546003031922789069665309544478919632962538449362538017421585022115439731151421481600869417101354245734328408770461845943926924006839831570684026663101087814943127844030645883217139651841220228752794288163167651268453859365008104863420883956925739229955726954, - 3491568285591026282329557403003414321454614505361167537349712274340873411416150090300576355143295039987831155895316753644007671668247330415378272961403140849833651793121146436429765339655426005311943680489554979568084677240578666211293880927539392406645471861076903448533235665938416063690880078600694339828667058684376597825212208071775961102901596344878583381458121207859390761070074507405157286813197428534551996710360727309430348182787301504714670774962843004803348579782670101299216128053446970840579947894224817680577244786599599593938409812448459373680114001654540260711139533230705717135288853718151905790947, - 22311124708224829714745196252861149884866850426255847801938206644344170519216524578702165576707177263194744343239278592252924629506357076469340106265774413703259374119688464689244611992241004067693098584324166082915264971232397130882739623229203351250189106549311945794922008462397182695749734096367423738248685287932011023094412356402461559245635203424082611402285929434263028586073803284007418397175490793973819490987396445688371337359333514157901570550483431280450492009259332476683172152568644711942239001658330041979611233824717689373453176758192035976524876948383542800446923961608728865681688057936672613927328, - 22574898758135333579799878726814265947456720884355090997322893726463668059423122141053965382678763915658928759059491071410504729298667458359409883088123495906708732710946721704205015525921108258453221426855555316051486118868998350742779701833161546525448192354874333609522606265859117906475125470537598427971710761585161825285735355513185963595067161315702855746983904687260520047086913653522509516331824431108714568078664709019905599792417785074759291494254503409354101560541511700870019250933613118125057603480287470635136446639892717151783660382322654714044538785598165401918933103950380241053437711169616800413878, - 1719090942976064593823108948755003873340370669281226076881572756713256550581580411789946521765745624194770402975036933146466642078078614162960301200694664774901829463464676358995593706312637220687362380056756896752261806407550689949124075589666123998799683820999250411671190702715483201446069139358871401896043746951406761201368090670109497519339150263275581492393192159624305229255340947813808038415955583579394529407256857643540039366204157633089915369728299144856212593370729764044544781563539221973236341503219010228893729208603713764868312798598430634267088215984214140041151284521589015106102492932728027858113, - 10655743385275368953853433357320006725680491116779348815029704238197431644828594572684817168739300654485649303555508431617295748501299799248461110881763802645820190409267385630289088768146320904781802327360155263538767676596089984429140236466613935261364493939557623814595987721527888771311462870458695930795940772586844567058943981836008928337699853457725665598905128151669307865836826287417674106524076634496861683312715979531268735924500938111201398728542282871852969921235226345462802815725630942910352419065985705696061344175773566299325308931458202769294104266552100927681126295041689683109241655075256405844566, - 26096561177116644145615220340273510443052187364567683932253450746700842074152999654394058853718919708167427505646975833531345736656966100708839038922238454070176037789276275922811433265415887897547021214334725831207613949600425204110862643701180951479151005567331601564032379664091165408725229728434016843337152429804646947179256122234225958548501592660562692339641723044351390668982635338693365896683619937360853751818135665722744837292889366200748789957971338149026040967075239754881290152673570766207628484768979000354295630429068829956343746642793106743073322336518401424602556100965889786675513276935409914967170, - 13554973355783938000802990423516556607543411812031035353451049790233268210163665162270078246278410346358062849542303539810979217748565095755728180106135798975111378783554415287663840543880226351586827836124344013094436672227869034886574276780054932601298967093629164775780481761312296534339384079525777220280627334571964369752398120098781909895228908795494608941275982670461468140599004330288667635572351030592535902682013011423376745685525708512461459935486817739561650911813139991167855399294643368134394288906614322589580798758983210702764447875803070267330182140166572259918892116562941787162200040925396471906198, - 15436872785865381149390843121971710425506919748728825510374413841290064727651431780727540635530786899992843948734314621374431259467638433596969905827455617812294703757534594977228955489930622852028652549344097988146178044200252717653660361218542712926940243030026846910643655021150396916216009847951885635277341893557826056156228439714809516108470482194830296689641371128259965078014895473609038957931057341131315383347728777374771476043904187178530571645390227693344678947493592984895582848884106026497013772449332852212897056456138820562672799296868429221114120495436599977982100834303339666380934885170578917418550, - 2058295750735558121795804132343190570115937355255386577801738224901731145271257251528006063963668150216552044867230323627435546142008233506312457357745163984044284911810753896837355060593858318777161845735749538567041919752520899462982297837229105059917976180708649956608055129322517712119309332293834510754481490498961811571994111989046615688569564638161525755354421732581674623377870729612604619357145222182330753565129290672476278935356544928614757724234970881340908737046408588674160497960053367174548676496169936756152045179106668696913686052522031298936386685576913973807557979879026836840471265740586363996827, - 3340898160832686680049627027235138363142454435734685049762540818655279074630608941954323218505877157663914176341393069977776571747004551605832269948969451508932430958230978477314420313577752952713822461938069205387282904029514926878398719605030600076255429028248766037183049199521043393274573045175989631519799191661289419019013098393210663245264424627404163121069786493235092283428069464000887473790037068505403283371971728275533502909125653179399271871670914625314405374148805767643800565256402245009104700672723796507805710595523742399348210344484578307964325704068806064077291394515425694034058578512010616580882, - 951932014718350716571258867084141245139700913726405126460611146855800697601729663938951715973329221046091510038237115112529852817496621350585171081913054087797203832396550045112339019385928004307512818971170832638398020230488898024743702460266131334045311565899763664500150321452476321840909478966530779531913510727915530769372543588498534031333086949404794238266806812573882778883180421169148166282499187081867248455160575401381148657755616638193006525647785841702802124126677403268968144461317957333487731032623732881828349380124215512336649799538400003196630048611996186271092861232833886799782481099311795913200, - 24342101085282619927805739703458926168359338272425729655567183073074596483826227559832740121946614086306678030577954726605556106136230895972226232822806284219096741372225396214629416365191601643460567902603350072641776720875046008876343722272838389836659772067659460823987796127759835204002148808577322720849322465743274324249908994497422737431330831601771049288139110474514463949049832281245628110238168215333143703090780665252496181288483334173771873324122484513266929182425949285874953721616995126365883723614586116868168331423747104313907880438632687760362169920975137033136781732126856997678602488979014116972439, - 6941476466318459394486118102701893546984741907933162104257588174805471532516952614033034022893332237010073156244639090284492942438465109443065148421692583509715195335839115146602445273739527963210862784029798811044303228726833081776723730061473436892292931895814214486066077766001200048123138025607330109185027961938146090007132177026767966484257471227859863953274881004243509284712443686053690784033015894804382259602735646745288831803913105112057926832755470695372107698048109601209516177210169736336689696993570878297194929985161922099680837282656818086551468799470560003498195285058722753249523358635334280533710, - 22657466521426232276012143464883744882416362750786446198974349750477067232925925230700419062092882701978148844504073681912357434298408039286695284261404334464348887703956909779917031406576373882030093319863377176384050650497129132563349349465694278677410790457832473402155923311676231782767714415721892917769853518823966857018755214315422253509575729288981199275180518332775855131192659479283742491432878394950711769174176776734184726234433282203846461090736740947931090279275762837241065399524532447953917106922204157897682854358257830377938844870865059183282412707847858687007484813743677149360772910502530086435257, - 13546511479307877608255697163228824806379380418514076103465604899852463102797568850535787397715304881850974101796289780547617793867874940402934829861411663016736796596412194872755586349149591129642031491451942060506152163288990951902934471260773627960459007136981234479115509556952470167115286000998960651033395196820357570678047151820444273694147408716159167177188484101027638674142837905318859689440999556993928362242466509687090482492105090819400033888686878962330244888928692877911755455830015237482126459980819325364101644023237805815117684869488564227255448077654781853009411738632580184614176478925836412338693, - 6277996031622512878110575652319990747309530593977038656559942287445278152423083022599960657735456119252329476130076389084672857538667344445411835488415752768278410756394409155788861974249174229727792341347203002980117322261287895287164320723450143406679277399159895084304534534887658840587379454125838089844028613206329236266261826738908913464411689905924134378663781778198811695299739179798598572749436760457906337617001482656021846627521911680201422752507952411925205422265417312792935779681742716376610555956667353300285985562171494505441822819842573760886021877334118679795421783880990577729289677623185904388349, - 7047659015324968886730307791769879177623614401385773383938780542209424019422394988898948784009649112963506523230707917696005087024920537788598267382281082286256665667314551177957544383678861647886379641407425690518816230741730444283119219606543552869140990790943160468801156421590860883338429673277739218942754248846483818260205394300459296129319797184936248167906944522785564293749508071301739313586080299846656671382488401585756175757270856565877356223573581523680873251202703261551484917958531113801876694432574996678080941939484364175424115280022542092109335095875333373496147746571568368872886076891294689914148, - 4505821705009222276194910934289175428738488342716034836370792175159660514035311000762441651550301042095304192812373878939162388234466323685768667960223409137418394601834702978680899631974743693601982474216658126365152830526225670555301003539149269722719945767768194126957266026275524800804717731091273990761200726384654427302922791809719520827165793359870795159542258362077914296926320378771391468373271201935558343466230177322858811217496602177265666439899410366762998852380866043369314467758086494237351165552439381833067726992356489416758300327786103416104074177004440654774660161417557954208268804893014331946245 - ], - "BigXj": [ - { - "Curve": "secp256k1", - "Coords": [ - 32892358388980363843511088328393751861200026553341908347513355846387141097651, - 9062026883818819092570598928783205066941067616630699662056585925848970397983 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49192255895340409580550531978565053600468216931758925972696997777796326604456, - 70926108228042544432989498404567856750962361759428011271282692831621938611780 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 66324254561340798541799010446859259739563430263165578359406004137243733418117, - 92550790492483135261338789738687307349229293885990335532287509722819884521749 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15356004195372019964536248410328989887989097020787223082467301867522420819114, - 82599018041304957446401060464139564546328830308368830207240224469799975612431 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59147056392368754842714981935526830254390478942574619260579892291069958404553, - 35321584526426601085330858147355373037404072940101653121573883396843663663287 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 29033365650442197279098238871482058725096917883127790803357048432003144884042, - 64774956228858792074205343648095266960164698480249253353703074055944116395145 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 59151301901585266563375834611083434861671873668934066814360523804544098870899, - 101519884590808241414313150259912515236087952240819396480524434863366236191911 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 109366368776743582764172351548496538710172110881758604262172606227673107704570, - 104239766235315448452049946367185062072087316161023368541213974843825360747177 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 48778843104197228094136218122118310481733266255934656901689483625818772834299, - 84982608571074934039242812133912111015912999822286373266516437811241152009633 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 67589775823083465382138356447994790565216038509682412724089019821145263505767, - 103063952230514707761373249471040826060058460025067072429588638449977827519490 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 68845041778045492096890736779475743070010292998858495299573985942759835647304, - 113014300168559085069842443449630534643085559431302456389605429278228450978149 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 56548018513700325073083247397972993994733638119421035827510506067846017322758, - 78117679646569447463847359028653445644554181681344374195628788851064348014223 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 77452606484172272227443497912526494581742661263804754739390678002289264828561, - 97793781344609401126932413537780896813076994207531462240146900614512964442393 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 64392006852410960446700390977080107085469541317422616715719983613355763155647, - 57613553554600138317929933910789738761603563814972384895616861432938150628278 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15926148507450142587849254717298550537332381713191016304541642087004058110311, - 2427623919813011035153122264961299677917340372157964365888881294055636086464 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 49776323195553817886526132525653230831759315128685238071654234091529229019941, - 82975223384553565714317199893452623178562639395393874762566285599855744108351 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 22487829986292476577891825066818066026519857955901182888999958747892113100861, - 33644178736950428400146402492210937811059351974637449587849958898251677047023 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 87769522771428353039924494357689636995192170933753309281278974176069402953228, - 37499738057295909726991201000875029532448475215770442910038608395195867486675 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 15770576615316579813571948163061018040785388391388222996118223517297944113818, - 35578198932455476866036238917894261650158049918312216058727315154035271006569 - ] - }, - { - "Curve": "secp256k1", - "Coords": [ - 91204839685064114028569675021631261701143440471197536119431642532256527815849, - 111334624876039595708776202810278516376968912057739377460841351030523045265371 - ] - } - ], - "PaillierPKs": [ - { - "N": 22355098586949306142631248837330379427986675427714079687245883748320613915934176170729805495699035441486881034605661906102277159303493615485429234841860779300619007387310556483420929995302032421958424066419771858986818292766307198415417416491489569712288933162883486440932439233839522513993823203045173601003663581532152407895597976560639431451720348739049005829099486819803879149360019439913448253228334729980906663392743238214267817991039875859776508704248955949150161862737319151827361256259395703843117123233365354122220331402602217468209852721631574731169162196276701001950946656203289359422180896132515242716377 - }, - { - "N": 22299096769367507919819072691928855386789902862764952425648973274333279324347154389783534965789003185265847538983473122226609308857298511305481872404887746615630119695429315137359185954219413302031120429381379310272425874678139269614739203586031236059716199373638953264784646504526343091350618347105609022238032907376732610182303168573058754856533077078228053501278295487724160691391187331872463327252314288083424841595745886625107236747971586585345077154335403196698866186884987423750203983461978594661019095905968483368088564923264009932033612384174930435397547712363193150586863255452292747002270149695234265882633 - }, - { - "N": 23357254930267159717319530557759592985853080112352790595243714071916343969238133417257829129789310236161233504571967892911834241752912335994343794932999357982197223317929328607786333896251132378735163960481372464367715445741935048385412831185807818790336771644668421364965949931950721837823135803865301631059381675127119686496148374349361125925716615946053411339435939995689106489983362108309047210495418882702010767521233045333171344261432217989667703233896700937759350657855827072873911490975691313838475131256656374512361149103344926685872876834704086920962274518822169351480173356368400583205393293387761182403321 - }, - { - "N": 25853187160108317553110273468016425789239247052336325582253602167650576207834654311402591074265429531823527929581870743062067212045967395712759549179984368803172457948013328544839493944953195125931347782839652061939020168811800641816359585517934623677167650654808076280403894802218911498190045554872878059899073119016781802505938456770878690918307309702885062775648204246944683303305709083788665428543364290920161315444549109231247128418048615257530830788030643630918307354773689597560690709103038571244543821720442002197753340109305248574957211126216106705463383847642902716134038402912474029835703176060332441636981 - }, - { - "N": 24425850963186377382245013304506954043392177949605295195807265341818181676366982158785183876674266593945228151397659197645472385459736279404933528655543023957362348872787918899929208983319869150395247868778131304301637870086671889527281874821601933841718551749143217996286505895933307182485194043285675792471990384353016282706189676039096508925421183261062113279663952753601317779724817095328401571690070660022799713871755548651276833402725555543836601656614034134644234313332529857816764788097910289405844916921956684567991847459708658938453890467478368872742188901812354628704085585927808897300633329867609888709977 - }, - { - "N": 27645853807523830851983613574044593753347274560597148374362031143403068557304015305262106398894360642497879859749399709927116392268492701790387886886302862844084245022404664634807484849574020883921167562705588923356954784719171225616351255335689676525957461388535460029526959216050066664636448958136803635383593448470985713110666974651162569125859906793272332885410336821408575327524650234410626144484655385960805602960495754767805978679633564916846795919602649568223516701378070496436981265215109243728327713078875194026649063754972414603885714757934012273567587939309036159387467492649999512970125622099963196725281 - }, - { - "N": 25521229614901133632282418978249459554032101470878226648315772771973740442810717651842797657440646777884400984766641900619102206828897129030766170286177486369901367164166020906132406683190416662071747452110173460344476887395689940877195925394364388020511192891646024648332721312041909105870514189881859430624754132397915588066849155347695176578274150643156510509171924705109642009609097327083933085005350366745066007965170796349486252135267759463385175195093453097672731160388707078701825981677600114177020243108359345747361895400846394099459603920445518613677539461056177210800941217089096442361688719043914236004041 - }, - { - "N": 25348874889687761414014967949520235420796773131479854047604651190430919646194873244618559319369087235185576205400000252369422091561323518011680721967110852653833500386870762376914552476726184453597518379179185493465602901164569007544272040313205744618243051229348466217336218419431633878799737285005025987084487676547443410007066361841578641684666436955341506148609731524403930004335680993421720367082218403267165993639294329225413286698592252285194904847265198889835534531122612967611210501908648553742906857628925108413539325460080200820429970934292851604180679378311919822104100927366550709759482660923059838596393 - }, - { - "N": 25592180626653444209737287791355489444228679103772020268205584375381351284160662064778519821743232784028716411575794125542396293154399532612636029656466879772019729978678976560317474362627590672380034059063492142095390083327659977053564146008255085950953906998846167523816643591986592474175490358384907590519322982486980735709219794957136550950729915174331185038379338884876958292902951981711126744450496614414536532458762342043647328925261315492563950584478453110593726567410357624244385048735068125311754364930796818108587244453297128221636967864522301928810876029328490801073148478732725401800657420039764193266137 - }, - { - "N": 24682359068367191763741802319640122256832283779118814681725277178241719883203284139876588386407025396913834763409967997173207434937845741630619618027810765089126176392667698499387391236908779938330844751490182693687106255401299088542385705302145807015514097127389391484178364240135232933709343063138797038546810715087140520200308182057168933438824013475638980679615902666953793852623236140055963607942063885523749105616650941586413045114197931322722064030400990270632595415268112377922862365015289381384644022007412083225170856732136790463192446308385846708872514842937750546580725874887940411182975453347924326911313 - }, - { - "N": 21119028879537810370168483385081410878956103025199076334848588782690690300047096788414881459205471188014064086426924715422875502655730946352100223329453022271963680513630278513668021389957605138270290830499880381628081673077920880228301575324930195788317804019762608222575471865840158320167077948333322191892030931445679392662544796843007574589971940901863155100123987220211502703008458161653605746393863394368219528812629194901888706489370543946201051782799449449588355301024421866443295733663435579794997570593919088189925169579887332856284902475902226806026964627536647173927292391682147704503607203792908098304549 - }, - { - "N": 27650458459372331925595513728364140010978391847455505988293444553396512857887739943371377900609776382634182554909135070368460358206222844223200868277302338183302775953941096861705324896777445935395343512655616112405560600588307129331646637938228953887834842536988648731109432168802108238066534528008643416523035670912319822458695354180112732158875109865195665567288821376567505208445052887864989568581396126600730422800264123486587712204158568023899428658689383133851542585661698663522369998178485280396703726914890892078297679954132172907536513953525504475277984922060599674902871205512422735854797372510345097259741 - }, - { - "N": 27120744594378359802994119733910908897041322725611113037604615278068619234758956853079731228193752453459747260499202417712088845384021901917500647456244812755282877802211502349345103772991470846784089448863739572108797094134357494957690923923775593973452282957902004622669474472175172638955726092085786832236625151281755082448876995088437670520380415930962733101078185981109765848437115388473717189547202885312800859966105923359421599268049801558075124427235036583526612862048070361286589620068092661680449370488542505224131383728360381359095411296855287131510563797070166818697486287538599539738852018641386889555201 - }, - { - "N": 24791552953662354819027946732912577928095346335350141127717542862770240432974831637094381592362029910482840671899237357869132011324179554650651381839104556918275275748041803189395177987250602039467608968756374075581645619557971053703245393266342750612569430343901540126554172845754506700535027021626625662394415546169654279357868662476139843081449316289592771843120339059824431067959431324872257424123725714204948399997344861701711726129293220901017083408199996945963331484721242915522370272087718597864114400262936555545992529144816244087794748898063195797465867542477452765067317738180077494444203707759991690563069 - }, - { - "N": 23248391435827951745397275743456229161468147984957110194221061708459265027249281174657356456116524770163439130776517729276213912199963737682940593043989456131845659569487951030193069180736603652240376260610037152661129450864400292066137484045648472948479901924485227954310155470907675943239108211111233472125802409817620802099394395315372498983760722052199762863648904875189402760307748688062771868551509268883063539824662907938449269283507054477254265715996909630778092687937561813750512770765418560470960536508915206490239461666689037616944666532905682683751163834510035482093167171141696121741582654342325327072637 - }, - { - "N": 26392069048437979636268882067503537499458427738389150969693527803974397730644547608721086826255777688334319164440994919305417758080710467508583602869045827655307866567645338252097987740264552145466814742277989740015803048729511448450854695967683938971721232715246753924280286918060052645491726458896612957199332805346174152625034258675872537732031394075734301516369786212900331385883606998791959272458302790246106351218319270095226647767330980817517626493057348646211329206231447121206313036759865095924911125336579981373381173260262797816294987653702017993343713478928256081024224150767641853262269619328781726893621 - }, - { - "N": 20543172132740874543450754229487894102205122043956977316453313533381429212570678438906637319946003529520054995940066100986933728024588675191452109465531444822773765933241387461070137919245028755575981320144805852498489520953565478797828130283363726646266575942228865741969234204097783812714045699896314935294999768282874452943270275824258174103340203881028529088423673023418678932778427401614394826049695002370518303420888293530659833704856833227951809159337374488949965311260434387523077658528624594272764831746745236112048087798204719935223290161986506368460669858815958167847699015323104643905577178360913207339401 - }, - { - "N": 30209673470571222923268722675094073063281828099076128770473024417870390777074374271905921556868022227541514615392651287914474841639628300223405307161801943360126785293808805516427247344911802734870807030012976062466595036555095075390832792370736222976159893657532772909373914574542959627091908890923063286383393516767644727857611115659209726640012595365827062300193532404204033559319216385409254715732365084765219222429526672506445444373668712278228878672595930664669045229716379190920884009489125077533282561065795673002202181580336304414522779045854627511563846290669428595227650632523168875103915673857770919617317 - }, - { - "N": 23920203880867317028625469158823672406122222577027323628368942159709323740181487551960302883209696491613268575700776643916350726992140844905002605625242839966093913124183540804284837300087745441579627570890931274233167817586171981538402283963807349851671059229394717266164509294251960294130190595456705698852821362085720069166564419243537167680602545555967833979605050146514302757330157377874664653012168379563581511704642565211761680783775031063168868032754128981009547750384373259997941360022256802341738427224333688945534074270017911326086041286301288543484714859312147392260781399066861223322366687433086777416477 - }, - { - "N": 24399878520615859798361742569135544852857257407652646481419725160992339657346515762748458123315309156069998592226580819786033996264435706016165732977914580012580031140075974224095911103947721929918069720229025959372891748950930048913529497111629478749352430844859325287243794991634511475928981884221205383535463663161852216635495735443088730349600401221306141728918917878223833277841611363629094162880777596959105035230177776025783998600892595431640585320654483358703000998632394734045964645013081602921773527980332623488817522011869085444848343908059105853010261449325516709100311570143802805547312341019637218080481 - } - ], - "ECDSAPub": { - "Curve": "secp256k1", - "Coords": [ - 96396203559338449140609949589039410031618358963960540497409629729029757387528, - 33564291617750663896182554414152761269923442265786811229324307186845193210173 - ] - } -} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_0.json b/test/_eddsa_fixtures/keygen_data_0.json index feeec143..703f8e28 100644 --- a/test/_eddsa_fixtures/keygen_data_0.json +++ b/test/_eddsa_fixtures/keygen_data_0.json @@ -1 +1,55 @@ -{"Xi":5497684578559545786538821087317191229833609560825198097090867227036693974853,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825450,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file +{ + "Xi": 1123470129231705739242320581717698411230426213735994178302500803173863706807, + "ShareID": 16958127193056753217174896719140242013165049118320995500079788286712215254699, + "Ks": [ + 16958127193056753217174896719140242013165049118320995500079788286712215254699, + 16958127193056753217174896719140242013165049118320995500079788286712215254700, + 16958127193056753217174896719140242013165049118320995500079788286712215254701, + 16958127193056753217174896719140242013165049118320995500079788286712215254702, + 16958127193056753217174896719140242013165049118320995500079788286712215254703 + ], + "BigXj": [ + { + "Curve": "ed25519", + "Coords": [ + 41224335615271381075769974113451208932038734166865770941868367954786737139552, + 13774707131169701307648645647869595844247752878418531713786329629764156867703 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 38390971515160903572427165747410954323761087557985235002455470524013018190764, + 54036280419400883391598155053830219960673373258014736801700705697636583040624 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 12180921436081473618738225787865688183676149452311584940003124609135472556146, + 14304976430285015362100019187031338642123069241060250603697165511151643721112 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 57790128021948066185972365523266757727429683682602823455782373884505843188465, + 9891270332903979021097669758548545766346917176662028553322574817894379911936 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 54411122522958760235689100188515303853105235089211507211432555722072080203537, + 25715298592430735257642280657834596913246686725766124466645327443598871256316 + ] + } + ], + "EDDSAPub": { + "Curve": "ed25519", + "Coords": [ + 43831020110083488052426589316462288057335074484814794644797467442316643200400, + 36043537263710696597551045641434817355465270335317244349166572839625087930913 + ] + } +} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_1.json b/test/_eddsa_fixtures/keygen_data_1.json index 4460233d..15970453 100644 --- a/test/_eddsa_fixtures/keygen_data_1.json +++ b/test/_eddsa_fixtures/keygen_data_1.json @@ -1 +1,55 @@ -{"Xi":63217934899982716894047386607270001125515919366615110191441945641589351059,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825451,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file +{ + "Xi": 73499487457616839495672093976859586345810524103245817354308078351272105414, + "ShareID": 16958127193056753217174896719140242013165049118320995500079788286712215254700, + "Ks": [ + 16958127193056753217174896719140242013165049118320995500079788286712215254699, + 16958127193056753217174896719140242013165049118320995500079788286712215254700, + 16958127193056753217174896719140242013165049118320995500079788286712215254701, + 16958127193056753217174896719140242013165049118320995500079788286712215254702, + 16958127193056753217174896719140242013165049118320995500079788286712215254703 + ], + "BigXj": [ + { + "Curve": "ed25519", + "Coords": [ + 41224335615271381075769974113451208932038734166865770941868367954786737139552, + 13774707131169701307648645647869595844247752878418531713786329629764156867703 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 38390971515160903572427165747410954323761087557985235002455470524013018190764, + 54036280419400883391598155053830219960673373258014736801700705697636583040624 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 12180921436081473618738225787865688183676149452311584940003124609135472556146, + 14304976430285015362100019187031338642123069241060250603697165511151643721112 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 57790128021948066185972365523266757727429683682602823455782373884505843188465, + 9891270332903979021097669758548545766346917176662028553322574817894379911936 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 54411122522958760235689100188515303853105235089211507211432555722072080203537, + 25715298592430735257642280657834596913246686725766124466645327443598871256316 + ] + } + ], + "EDDSAPub": { + "Curve": "ed25519", + "Coords": [ + 43831020110083488052426589316462288057335074484814794644797467442316643200400, + 36043537263710696597551045641434817355465270335317244349166572839625087930913 + ] + } +} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_10.json b/test/_eddsa_fixtures/keygen_data_10.json deleted file mode 100644 index 637f110a..00000000 --- a/test/_eddsa_fixtures/keygen_data_10.json +++ /dev/null @@ -1 +0,0 @@ -{"Xi":612714003124180468435465629962791203830154005382664864392564657993173015402,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825460,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_11.json b/test/_eddsa_fixtures/keygen_data_11.json deleted file mode 100644 index cfd154ae..00000000 --- a/test/_eddsa_fixtures/keygen_data_11.json +++ /dev/null @@ -1 +0,0 @@ -{"Xi":132334330740542508112965228396678173206965797155205085258526075204147842999,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825461,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_12.json b/test/_eddsa_fixtures/keygen_data_12.json deleted file mode 100644 index 5c0b4d6f..00000000 --- a/test/_eddsa_fixtures/keygen_data_12.json +++ /dev/null @@ -1 +0,0 @@ -{"Xi":1921343134857809336751206840551659669418844774179637463961986945173823600101,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825462,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_13.json b/test/_eddsa_fixtures/keygen_data_13.json deleted file mode 100644 index bdc867a3..00000000 --- a/test/_eddsa_fixtures/keygen_data_13.json +++ /dev/null @@ -1 +0,0 @@ -{"Xi":3558382524044537666501461744703165381727523259984117242394204292910450959450,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825463,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_14.json b/test/_eddsa_fixtures/keygen_data_14.json deleted file mode 100644 index 27d1d8f4..00000000 --- a/test/_eddsa_fixtures/keygen_data_14.json +++ /dev/null @@ -1 +0,0 @@ -{"Xi":6412808835118819085492743071719737203105199209455243425461676282885185849942,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825464,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_15.json b/test/_eddsa_fixtures/keygen_data_15.json deleted file mode 100644 index aa6b2347..00000000 --- a/test/_eddsa_fixtures/keygen_data_15.json +++ /dev/null @@ -1 +0,0 @@ -{"Xi":2537771294854952247889447558735279964020200059516392797425993769055333209778,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825465,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_16.json b/test/_eddsa_fixtures/keygen_data_16.json deleted file mode 100644 index e30f5e14..00000000 --- a/test/_eddsa_fixtures/keygen_data_16.json +++ /dev/null @@ -1 +0,0 @@ -{"Xi":1398337338638325844456898556082803595180685456144685609069723938462608553306,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825466,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_17.json b/test/_eddsa_fixtures/keygen_data_17.json deleted file mode 100644 index 5c87a0c9..00000000 --- a/test/_eddsa_fixtures/keygen_data_17.json +++ /dev/null @@ -1 +0,0 @@ -{"Xi":6568342599621759325979947282583347307332087091895502202407344082023314551338,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825467,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_18.json b/test/_eddsa_fixtures/keygen_data_18.json deleted file mode 100644 index 13647fd9..00000000 --- a/test/_eddsa_fixtures/keygen_data_18.json +++ /dev/null @@ -1 +0,0 @@ -{"Xi":3049379593686129638313564852122191503689962664104561458255546250747117815135,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825468,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_19.json b/test/_eddsa_fixtures/keygen_data_19.json deleted file mode 100644 index 76e90ec4..00000000 --- a/test/_eddsa_fixtures/keygen_data_19.json +++ /dev/null @@ -1 +0,0 @@ -{"Xi":5204698323580644027606815765592885488881961426971733158947112508553271193434,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825469,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_2.json b/test/_eddsa_fixtures/keygen_data_2.json index be22505a..bace4ce5 100644 --- a/test/_eddsa_fixtures/keygen_data_2.json +++ b/test/_eddsa_fixtures/keygen_data_2.json @@ -1 +1,55 @@ -{"Xi":872133822970594263976239542698278517508809712383590934449908956501683125959,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825452,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file +{ + "Xi": 5013950077382759940964921645122801576070364469316285943929610121614322332438, + "ShareID": 16958127193056753217174896719140242013165049118320995500079788286712215254701, + "Ks": [ + 16958127193056753217174896719140242013165049118320995500079788286712215254699, + 16958127193056753217174896719140242013165049118320995500079788286712215254700, + 16958127193056753217174896719140242013165049118320995500079788286712215254701, + 16958127193056753217174896719140242013165049118320995500079788286712215254702, + 16958127193056753217174896719140242013165049118320995500079788286712215254703 + ], + "BigXj": [ + { + "Curve": "ed25519", + "Coords": [ + 41224335615271381075769974113451208932038734166865770941868367954786737139552, + 13774707131169701307648645647869595844247752878418531713786329629764156867703 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 38390971515160903572427165747410954323761087557985235002455470524013018190764, + 54036280419400883391598155053830219960673373258014736801700705697636583040624 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 12180921436081473618738225787865688183676149452311584940003124609135472556146, + 14304976430285015362100019187031338642123069241060250603697165511151643721112 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 57790128021948066185972365523266757727429683682602823455782373884505843188465, + 9891270332903979021097669758548545766346917176662028553322574817894379911936 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 54411122522958760235689100188515303853105235089211507211432555722072080203537, + 25715298592430735257642280657834596913246686725766124466645327443598871256316 + ] + } + ], + "EDDSAPub": { + "Curve": "ed25519", + "Coords": [ + 43831020110083488052426589316462288057335074484814794644797467442316643200400, + 36043537263710696597551045641434817355465270335317244349166572839625087930913 + ] + } +} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_3.json b/test/_eddsa_fixtures/keygen_data_3.json index e1e8037d..bd629255 100644 --- a/test/_eddsa_fixtures/keygen_data_3.json +++ b/test/_eddsa_fixtures/keygen_data_3.json @@ -1 +1,55 @@ -{"Xi":1179836229477984641418482962119419198917316245936841797929041104581714095832,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825453,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file +{ + "Xi": 1470810744342610615703696109069535898689855330615299346024505056392105885901, + "ShareID": 16958127193056753217174896719140242013165049118320995500079788286712215254702, + "Ks": [ + 16958127193056753217174896719140242013165049118320995500079788286712215254699, + 16958127193056753217174896719140242013165049118320995500079788286712215254700, + 16958127193056753217174896719140242013165049118320995500079788286712215254701, + 16958127193056753217174896719140242013165049118320995500079788286712215254702, + 16958127193056753217174896719140242013165049118320995500079788286712215254703 + ], + "BigXj": [ + { + "Curve": "ed25519", + "Coords": [ + 41224335615271381075769974113451208932038734166865770941868367954786737139552, + 13774707131169701307648645647869595844247752878418531713786329629764156867703 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 38390971515160903572427165747410954323761087557985235002455470524013018190764, + 54036280419400883391598155053830219960673373258014736801700705697636583040624 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 12180921436081473618738225787865688183676149452311584940003124609135472556146, + 14304976430285015362100019187031338642123069241060250603697165511151643721112 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 57790128021948066185972365523266757727429683682602823455782373884505843188465, + 9891270332903979021097669758548545766346917176662028553322574817894379911936 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 54411122522958760235689100188515303853105235089211507211432555722072080203537, + 25715298592430735257642280657834596913246686725766124466645327443598871256316 + ] + } + ], + "EDDSAPub": { + "Curve": "ed25519", + "Coords": [ + 43831020110083488052426589316462288057335074484814794644797467442316643200400, + 36043537263710696597551045641434817355465270335317244349166572839625087930913 + ] + } +} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_4.json b/test/_eddsa_fixtures/keygen_data_4.json index e57fb5c2..e8d10589 100644 --- a/test/_eddsa_fixtures/keygen_data_4.json +++ b/test/_eddsa_fixtures/keygen_data_4.json @@ -1 +1,55 @@ -{"Xi":5017669489520337100589122810632646133378593041253350621343210562932715161221,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825454,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file +{ + "Xi": 3918092643001693291658368611903051035918515826760101235642894759255531267781, + "ShareID": 16958127193056753217174896719140242013165049118320995500079788286712215254703, + "Ks": [ + 16958127193056753217174896719140242013165049118320995500079788286712215254699, + 16958127193056753217174896719140242013165049118320995500079788286712215254700, + 16958127193056753217174896719140242013165049118320995500079788286712215254701, + 16958127193056753217174896719140242013165049118320995500079788286712215254702, + 16958127193056753217174896719140242013165049118320995500079788286712215254703 + ], + "BigXj": [ + { + "Curve": "ed25519", + "Coords": [ + 41224335615271381075769974113451208932038734166865770941868367954786737139552, + 13774707131169701307648645647869595844247752878418531713786329629764156867703 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 38390971515160903572427165747410954323761087557985235002455470524013018190764, + 54036280419400883391598155053830219960673373258014736801700705697636583040624 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 12180921436081473618738225787865688183676149452311584940003124609135472556146, + 14304976430285015362100019187031338642123069241060250603697165511151643721112 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 57790128021948066185972365523266757727429683682602823455782373884505843188465, + 9891270332903979021097669758548545766346917176662028553322574817894379911936 + ] + }, + { + "Curve": "ed25519", + "Coords": [ + 54411122522958760235689100188515303853105235089211507211432555722072080203537, + 25715298592430735257642280657834596913246686725766124466645327443598871256316 + ] + } + ], + "EDDSAPub": { + "Curve": "ed25519", + "Coords": [ + 43831020110083488052426589316462288057335074484814794644797467442316643200400, + 36043537263710696597551045641434817355465270335317244349166572839625087930913 + ] + } +} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_5.json b/test/_eddsa_fixtures/keygen_data_5.json deleted file mode 100644 index 8f7b32a4..00000000 --- a/test/_eddsa_fixtures/keygen_data_5.json +++ /dev/null @@ -1 +0,0 @@ -{"Xi":4765471521464052470070984911157841845886683306552259817170065272142575391856,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825455,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_6.json b/test/_eddsa_fixtures/keygen_data_6.json deleted file mode 100644 index 5f4efa22..00000000 --- a/test/_eddsa_fixtures/keygen_data_6.json +++ /dev/null @@ -1 +0,0 @@ -{"Xi":1045892474936059251985659170102725504923897290191611725843576974027994030581,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825456,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_7.json b/test/_eddsa_fixtures/keygen_data_7.json deleted file mode 100644 index ed10ea51..00000000 --- a/test/_eddsa_fixtures/keygen_data_7.json +++ /dev/null @@ -1 +0,0 @@ -{"Xi":4041926922956203584528365898533497289190576165251745887001630247571429018585,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825457,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_8.json b/test/_eddsa_fixtures/keygen_data_8.json deleted file mode 100644 index ced47850..00000000 --- a/test/_eddsa_fixtures/keygen_data_8.json +++ /dev/null @@ -1 +0,0 @@ -{"Xi":4424331354155150752871085145208343995276421178095495124698480820719825522042,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825458,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file diff --git a/test/_eddsa_fixtures/keygen_data_9.json b/test/_eddsa_fixtures/keygen_data_9.json deleted file mode 100644 index a7386de2..00000000 --- a/test/_eddsa_fixtures/keygen_data_9.json +++ /dev/null @@ -1 +0,0 @@ -{"Xi":4107694223360230897865014039477631043773881150017797542034694187907332099878,"ShareID":40734138852254171962093726793026483849163144962128892259315105148313993825459,"Ks":[40734138852254171962093726793026483849163144962128892259315105148313993825450,40734138852254171962093726793026483849163144962128892259315105148313993825451,40734138852254171962093726793026483849163144962128892259315105148313993825452,40734138852254171962093726793026483849163144962128892259315105148313993825453,40734138852254171962093726793026483849163144962128892259315105148313993825454,40734138852254171962093726793026483849163144962128892259315105148313993825455,40734138852254171962093726793026483849163144962128892259315105148313993825456,40734138852254171962093726793026483849163144962128892259315105148313993825457,40734138852254171962093726793026483849163144962128892259315105148313993825458,40734138852254171962093726793026483849163144962128892259315105148313993825459,40734138852254171962093726793026483849163144962128892259315105148313993825460,40734138852254171962093726793026483849163144962128892259315105148313993825461,40734138852254171962093726793026483849163144962128892259315105148313993825462,40734138852254171962093726793026483849163144962128892259315105148313993825463,40734138852254171962093726793026483849163144962128892259315105148313993825464,40734138852254171962093726793026483849163144962128892259315105148313993825465,40734138852254171962093726793026483849163144962128892259315105148313993825466,40734138852254171962093726793026483849163144962128892259315105148313993825467,40734138852254171962093726793026483849163144962128892259315105148313993825468,40734138852254171962093726793026483849163144962128892259315105148313993825469],"BigXj":[{"Coords":[29957866551444288658476350454857942692734557351100032691360819157091897571232,36516084228669802171659768461438209556386151343623994887856397017072741988372]},{"Coords":[47405980669639002124687519219913707250293554115260022083522701215817403509702,6956633993610953877720305833332948578423467581354172946924040631226828086263]},{"Coords":[18448325566171282313365171084287037248684936691904749885126674379501353453346,57542808379242682171071366265254456185195752776998290707742666662032232473622]},{"Coords":[798119792817890022465650864894266739550633881670097146590803382931084199002,18741616705198182206589511729301188460657955392768622916582367701785923387424]},{"Coords":[14524065198933915096660983495571495008260235612202009841821241149956652340934,162069773027357354579088193613939754572344398048294401250160042815055523396]},{"Coords":[2391511861628100895088988814765656118369224176176415534794931546222531191393,54978250562078788732535891657909173161508352364458206272900734945726006923944]},{"Coords":[33367545684625665916290843623923194353275614015826572202674111417892161420321,34552418317790324990966929588824151029743376389391432746282019503564426200611]},{"Coords":[453004606432256381667684448461219576328123204931667780295629476469381320335,24202636244659007772676161416986810172809713458728117448473736554568193288470]},{"Coords":[44318728173104604826550003017879014210227013712735183198372207299653903594205,55087473080850843015060234253261358005815826246456261778853783389363296224499]},{"Coords":[5097897464978708021234982103799161978473496892186061915228937112062938960292,39812599820868772665849683762267559082841521300551301780306710760212842213142]},{"Coords":[55801688604275193229895471092959853307614973751632662500004587523688279428992,17908790269314533447122947617750819476463804243432605334549377565373680755876]},{"Coords":[32196451128233400126962687457853805171503763230195900653815988022301169917854,10273285854850198960907924097749326069343899412006196915507281805160302832102]},{"Coords":[26398652979910650230881886450362073218710043900599396151821471419532983149715,3032814692424797993000494058354620844984917462544480255564224802193495430820]},{"Coords":[27236617586105103118624761259021831737235970883376501177552152583376986719238,2786011207236436994120124945804028682728444491790282961909091865945687955840]},{"Coords":[6500269738457737805717018971821598944446826873819309240030153246330846600187,54308477058519174622786176570543012641112928166620722474067812858680268430854]},{"Coords":[4652059627434138465834466819430362335203531466567637962754703362561726860984,18006877504897652595228402160133201981096960017662552547657957601542173068568]},{"Coords":[42705465432401668547671480078970955931365681662524360494488948437573630670729,37242984276081434326327463579899341679142344806501877280538421137197674554811]},{"Coords":[18501735463211215871442136946404860176100300228118646447712783974401612692211,55831398139586339034188706414537302757232734304622486782051369794171579576311]},{"Coords":[7385530367911231668221642462698546652820692326793989938132531831625569287435,12085977429229034609485085920553594147602092630530547749432190844231493145848]},{"Coords":[49366217028906791915740719671679644479230737403944270239462268252818931953988,25008491817774874184492999972971314605544442775664114331432153999032773052367]}],"EDDSAPub":{"Coords":[42175055170903350083404361365361390497000185285799325061444760830647516725091,33752718602899281735872279809218140168011871948094137689488348151553552496995]}} \ No newline at end of file diff --git a/test/config.go b/test/config.go index 4f055032..20e50a21 100644 --- a/test/config.go +++ b/test/config.go @@ -9,6 +9,6 @@ package test const ( // To change these parameters, you must first delete the text fixture files in test/_fixtures/ and then run the keygen test alone. // Then the signing and resharing tests will work with the new n, t configuration using the newly written fixture files. - TestParticipants = 20 + TestParticipants = 5 TestThreshold = TestParticipants / 2 ) diff --git a/tss/curve.go b/tss/curve.go index 4349c701..02c91d7b 100644 --- a/tss/curve.go +++ b/tss/curve.go @@ -60,6 +60,17 @@ func GetCurveName(curve elliptic.Curve) (CurveName, bool) { return "", false } +// SameCurve returns true if both lhs and rhs are the same known curve +func SameCurve(lhs, rhs elliptic.Curve) bool { + lName, lOk := GetCurveName(lhs) + rName, rOk := GetCurveName(rhs) + if lOk && rOk { + return lName == rName + } + // if lhs/rhs not exist, return false + return false +} + // EC returns the current elliptic curve in use. The default is secp256k1 func EC() elliptic.Curve { return ec diff --git a/tss/params.go b/tss/params.go index 8bf74148..114f4848 100644 --- a/tss/params.go +++ b/tss/params.go @@ -21,6 +21,11 @@ type ( threshold int concurrency int safePrimeGenTimeout time.Duration + // proof session info + nonce int + // for keygen + noProofMod bool + noProofFac bool } ReSharingParameters struct { @@ -85,6 +90,22 @@ func (params *Parameters) SetSafePrimeGenTimeout(timeout time.Duration) { params.safePrimeGenTimeout = timeout } +func (params *Parameters) NoProofMod() bool { + return params.noProofMod +} + +func (params *Parameters) NoProofFac() bool { + return params.noProofFac +} + +func (params *Parameters) SetNoProofMod() { + params.noProofMod = true +} + +func (params *Parameters) SetNoProofFac() { + params.noProofFac = true +} + // ----- // // Exported, used in `tss` client From ff989bf945d6161675b12c5d1c0330d290b1a963 Mon Sep 17 00:00:00 2001 From: ycen <44356973+yycen@users.noreply.github.com> Date: Thu, 24 Aug 2023 09:41:19 +0800 Subject: [PATCH 45/50] Update tagged version hash encoding (#257) --- common/hash.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/common/hash.go b/common/hash.go index 304af71b..2ffcec1e 100644 --- a/common/hash.go +++ b/common/hash.go @@ -119,11 +119,16 @@ func SHA512_256i_TAGGED(tag []byte, in ...*big.Int) *big.Int { } bzSize += len(ptrs[i]) } - data = make([]byte, 0, len(inLenBz)+bzSize+inLen) + dataCap := len(inLenBz) + bzSize + inLen + (inLen * 8) + data = make([]byte, 0, dataCap) data = append(data, inLenBz...) for i := range in { data = append(data, ptrs[i]...) data = append(data, hashInputDelimiter) // safety delimiter + dataLen := make([]byte, 8) // 64-bits + binary.LittleEndian.PutUint64(dataLen, uint64(len(ptrs[i]))) + data = append(data, dataLen...) // Security audit: length of each byte buffer should be added after + // each security delimiters in order to enforce proper domain separation } // n < len(data) or an error will never happen. // see: https://golang.org/pkg/hash/#Hash and https://github.com/golang/go/wiki/Hashing#the-hashhash-interface From faf18846e7402be4ff69f936c299ff906a60d181 Mon Sep 17 00:00:00 2001 From: ycen <44356973+yycen@users.noreply.github.com> Date: Sat, 26 Aug 2023 13:13:02 +0800 Subject: [PATCH 46/50] Update module name to v2 (#262) --- Makefile | 2 +- common/hash_utils_test.go | 2 +- common/random_test.go | 2 +- crypto/ckd/child_key_derivation.go | 4 ++-- crypto/ckd/child_key_derivation_test.go | 2 +- crypto/commitments/commitment.go | 2 +- crypto/commitments/commitment_test.go | 2 +- crypto/dlnproof/proof.go | 4 ++-- crypto/ecpoint.go | 2 +- crypto/ecpoint_test.go | 4 ++-- crypto/facproof/proof.go | 2 +- crypto/facproof/proof_test.go | 8 ++++---- crypto/modproof/proof.go | 2 +- crypto/modproof/proof_test.go | 4 ++-- crypto/mta/proofs.go | 8 ++++---- crypto/mta/range_proof.go | 4 ++-- crypto/mta/range_proof_test.go | 8 ++++---- crypto/mta/share_protocol.go | 6 +++--- crypto/mta/share_protocol_test.go | 10 +++++----- crypto/paillier/paillier.go | 4 ++-- crypto/paillier/paillier_test.go | 8 ++++---- crypto/schnorr/schnorr_proof.go | 4 ++-- crypto/schnorr/schnorr_proof_test.go | 8 ++++---- crypto/utils.go | 2 +- crypto/vss/feldman_vss.go | 7 +++---- crypto/vss/feldman_vss_test.go | 6 +++--- ecdsa/keygen/dln_verifier.go | 2 +- ecdsa/keygen/dln_verifier_test.go | 2 +- ecdsa/keygen/local_party.go | 8 ++++---- ecdsa/keygen/local_party_test.go | 14 +++++++------- ecdsa/keygen/messages.go | 16 ++++++++-------- ecdsa/keygen/prepare.go | 4 ++-- ecdsa/keygen/round_1.go | 12 ++++++------ ecdsa/keygen/round_2.go | 8 ++++---- ecdsa/keygen/round_3.go | 10 +++++----- ecdsa/keygen/round_4.go | 6 +++--- ecdsa/keygen/rounds.go | 4 ++-- ecdsa/keygen/save_data.go | 6 +++--- ecdsa/keygen/test_utils.go | 4 ++-- ecdsa/resharing/local_party.go | 12 ++++++------ ecdsa/resharing/local_party_test.go | 14 +++++++------- ecdsa/resharing/messages.go | 18 +++++++++--------- ecdsa/resharing/round_1_old_step_1.go | 12 ++++++------ ecdsa/resharing/round_2_new_step_1.go | 8 ++++---- ecdsa/resharing/round_3_old_step_2.go | 2 +- ecdsa/resharing/round_4_new_step_2.go | 14 +++++++------- ecdsa/resharing/round_5_new_step_3.go | 4 ++-- ecdsa/resharing/rounds.go | 8 ++++---- ecdsa/signing/finalize.go | 4 ++-- ecdsa/signing/key_derivation_util.go | 8 ++++---- ecdsa/signing/local_party.go | 12 ++++++------ ecdsa/signing/local_party_test.go | 8 ++++---- ecdsa/signing/messages.go | 12 ++++++------ ecdsa/signing/prepare.go | 4 ++-- ecdsa/signing/round_1.go | 12 ++++++------ ecdsa/signing/round_2.go | 4 ++-- ecdsa/signing/round_3.go | 6 +++--- ecdsa/signing/round_4.go | 6 +++--- ecdsa/signing/round_5.go | 8 ++++---- ecdsa/signing/round_6.go | 4 ++-- ecdsa/signing/round_7.go | 8 ++++---- ecdsa/signing/round_8.go | 2 +- ecdsa/signing/round_9.go | 4 ++-- ecdsa/signing/rounds.go | 8 ++++---- eddsa/keygen/local_party.go | 8 ++++---- eddsa/keygen/local_party_test.go | 10 +++++----- eddsa/keygen/messages.go | 12 ++++++------ eddsa/keygen/round_1.go | 10 +++++----- eddsa/keygen/round_2.go | 4 ++-- eddsa/keygen/round_3.go | 10 +++++----- eddsa/keygen/rounds.go | 4 ++-- eddsa/keygen/save_data.go | 4 ++-- eddsa/keygen/test_utils.go | 4 ++-- eddsa/resharing/local_party.go | 12 ++++++------ eddsa/resharing/local_party_test.go | 14 +++++++------- eddsa/resharing/messages.go | 10 +++++----- eddsa/resharing/round_1_old_step_1.go | 12 ++++++------ eddsa/resharing/round_2_new_step_1.go | 2 +- eddsa/resharing/round_3_old_step_2.go | 2 +- eddsa/resharing/round_4_new_step_2.go | 10 +++++----- eddsa/resharing/round_5_new_step_3.go | 2 +- eddsa/resharing/rounds.go | 4 ++-- eddsa/signing/finalize.go | 2 +- eddsa/signing/local_party.go | 10 +++++----- eddsa/signing/local_party_test.go | 8 ++++---- eddsa/signing/messages.go | 10 +++++----- eddsa/signing/prepare.go | 2 +- eddsa/signing/round_1.go | 10 +++++----- eddsa/signing/round_2.go | 4 ++-- eddsa/signing/round_3.go | 8 ++++---- eddsa/signing/rounds.go | 8 ++++---- eddsa/signing/utils.go | 2 +- go.mod | 2 +- test/utils.go | 2 +- tss/party.go | 2 +- tss/party_id.go | 2 +- 96 files changed, 310 insertions(+), 311 deletions(-) diff --git a/Makefile b/Makefile index e385c479..4ffff95f 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,4 @@ -MODULE = github.com/bnb-chain/tss-lib +MODULE = github.com/bnb-chain/tss-lib/v2 PACKAGES = $(shell go list ./... | grep -v '/vendor/') all: protob test diff --git a/common/hash_utils_test.go b/common/hash_utils_test.go index b4abcfd6..c0fdce2c 100644 --- a/common/hash_utils_test.go +++ b/common/hash_utils_test.go @@ -11,7 +11,7 @@ import ( "reflect" "testing" - "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/v2/common" ) func TestRejectionSample(t *testing.T) { diff --git a/common/random_test.go b/common/random_test.go index 4a9eb3c8..b7ca5f95 100644 --- a/common/random_test.go +++ b/common/random_test.go @@ -12,7 +12,7 @@ import ( "github.com/stretchr/testify/assert" - "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/v2/common" ) const ( diff --git a/crypto/ckd/child_key_derivation.go b/crypto/ckd/child_key_derivation.go index 6d188d3a..fd608723 100644 --- a/crypto/ckd/child_key_derivation.go +++ b/crypto/ckd/child_key_derivation.go @@ -14,8 +14,8 @@ import ( "hash" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" "github.com/btcsuite/btcd/btcec" "github.com/btcsuite/btcutil/base58" "golang.org/x/crypto/ripemd160" diff --git a/crypto/ckd/child_key_derivation_test.go b/crypto/ckd/child_key_derivation_test.go index a065b9d9..9f97f78f 100644 --- a/crypto/ckd/child_key_derivation_test.go +++ b/crypto/ckd/child_key_derivation_test.go @@ -9,7 +9,7 @@ package ckd_test import ( "testing" - . "github.com/bnb-chain/tss-lib/crypto/ckd" + . "github.com/bnb-chain/tss-lib/v2/crypto/ckd" "github.com/btcsuite/btcd/btcec" ) diff --git a/crypto/commitments/commitment.go b/crypto/commitments/commitment.go index b58a3ced..d273fe74 100644 --- a/crypto/commitments/commitment.go +++ b/crypto/commitments/commitment.go @@ -12,7 +12,7 @@ package commitments import ( "math/big" - "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/v2/common" ) const ( diff --git a/crypto/commitments/commitment_test.go b/crypto/commitments/commitment_test.go index d3912607..3dedf214 100644 --- a/crypto/commitments/commitment_test.go +++ b/crypto/commitments/commitment_test.go @@ -12,7 +12,7 @@ import ( "github.com/stretchr/testify/assert" - . "github.com/bnb-chain/tss-lib/crypto/commitments" + . "github.com/bnb-chain/tss-lib/v2/crypto/commitments" ) func TestCreateVerify(t *testing.T) { diff --git a/crypto/dlnproof/proof.go b/crypto/dlnproof/proof.go index 772df346..43dd1556 100644 --- a/crypto/dlnproof/proof.go +++ b/crypto/dlnproof/proof.go @@ -15,8 +15,8 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" - cmts "github.com/bnb-chain/tss-lib/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/common" + cmts "github.com/bnb-chain/tss-lib/v2/crypto/commitments" ) const Iterations = 128 diff --git a/crypto/ecpoint.go b/crypto/ecpoint.go index 7c09d926..d0248398 100644 --- a/crypto/ecpoint.go +++ b/crypto/ecpoint.go @@ -18,7 +18,7 @@ import ( "github.com/decred/dcrd/dcrec/edwards/v2" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/tss" ) // ECPoint convenience helper diff --git a/crypto/ecpoint_test.go b/crypto/ecpoint_test.go index b3d518e6..f3cf1af7 100644 --- a/crypto/ecpoint_test.go +++ b/crypto/ecpoint_test.go @@ -17,8 +17,8 @@ import ( "github.com/decred/dcrd/dcrec/edwards/v2" "github.com/stretchr/testify/assert" - . "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/tss" + . "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/tss" ) func TestFlattenECPoints(t *testing.T) { diff --git a/crypto/facproof/proof.go b/crypto/facproof/proof.go index 6458ff93..32ac00cf 100644 --- a/crypto/facproof/proof.go +++ b/crypto/facproof/proof.go @@ -12,7 +12,7 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/v2/common" ) const ( diff --git a/crypto/facproof/proof_test.go b/crypto/facproof/proof_test.go index ef73ea74..7676f19f 100644 --- a/crypto/facproof/proof_test.go +++ b/crypto/facproof/proof_test.go @@ -12,10 +12,10 @@ import ( "github.com/stretchr/testify/assert" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - . "github.com/bnb-chain/tss-lib/crypto/facproof" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + . "github.com/bnb-chain/tss-lib/v2/crypto/facproof" + "github.com/bnb-chain/tss-lib/v2/tss" ) // Using a modulus length of 2048 is recommended in the GG18 spec diff --git a/crypto/modproof/proof.go b/crypto/modproof/proof.go index bcbb9ee0..3277db12 100644 --- a/crypto/modproof/proof.go +++ b/crypto/modproof/proof.go @@ -10,7 +10,7 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/v2/common" ) const ( diff --git a/crypto/modproof/proof_test.go b/crypto/modproof/proof_test.go index d5380563..5a6dc419 100644 --- a/crypto/modproof/proof_test.go +++ b/crypto/modproof/proof_test.go @@ -10,8 +10,8 @@ import ( "testing" "time" - . "github.com/bnb-chain/tss-lib/crypto/modproof" - "github.com/bnb-chain/tss-lib/ecdsa/keygen" + . "github.com/bnb-chain/tss-lib/v2/crypto/modproof" + "github.com/bnb-chain/tss-lib/v2/ecdsa/keygen" "github.com/stretchr/testify/assert" ) diff --git a/crypto/mta/proofs.go b/crypto/mta/proofs.go index 55142c7a..2bd61174 100644 --- a/crypto/mta/proofs.go +++ b/crypto/mta/proofs.go @@ -12,10 +12,10 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/paillier" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/paillier" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/crypto/mta/range_proof.go b/crypto/mta/range_proof.go index 37ed1a4d..11bb999f 100644 --- a/crypto/mta/range_proof.go +++ b/crypto/mta/range_proof.go @@ -12,8 +12,8 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto/paillier" ) const ( diff --git a/crypto/mta/range_proof_test.go b/crypto/mta/range_proof_test.go index a20dd701..318335f1 100644 --- a/crypto/mta/range_proof_test.go +++ b/crypto/mta/range_proof_test.go @@ -15,10 +15,10 @@ import ( "github.com/stretchr/testify/assert" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/paillier" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/paillier" + "github.com/bnb-chain/tss-lib/v2/tss" ) // Using a modulus length of 2048 is recommended in the GG18 spec diff --git a/crypto/mta/share_protocol.go b/crypto/mta/share_protocol.go index 40e1b924..94c1c877 100644 --- a/crypto/mta/share_protocol.go +++ b/crypto/mta/share_protocol.go @@ -11,9 +11,9 @@ import ( "errors" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/paillier" ) func AliceInit( diff --git a/crypto/mta/share_protocol_test.go b/crypto/mta/share_protocol_test.go index 81ad3c93..aed84f39 100644 --- a/crypto/mta/share_protocol_test.go +++ b/crypto/mta/share_protocol_test.go @@ -14,11 +14,11 @@ import ( "github.com/stretchr/testify/assert" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/paillier" - "github.com/bnb-chain/tss-lib/ecdsa/keygen" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/paillier" + "github.com/bnb-chain/tss-lib/v2/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/v2/tss" ) // Using a modulus length of 2048 is recommended in the GG18 spec diff --git a/crypto/paillier/paillier.go b/crypto/paillier/paillier.go index 14ad6412..1b249b12 100644 --- a/crypto/paillier/paillier.go +++ b/crypto/paillier/paillier.go @@ -26,8 +26,8 @@ import ( "github.com/otiai10/primes" - "github.com/bnb-chain/tss-lib/common" - crypto2 "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/v2/common" + crypto2 "github.com/bnb-chain/tss-lib/v2/crypto" ) const ( diff --git a/crypto/paillier/paillier_test.go b/crypto/paillier/paillier_test.go index 6d9cc53b..a9ebff73 100644 --- a/crypto/paillier/paillier_test.go +++ b/crypto/paillier/paillier_test.go @@ -14,10 +14,10 @@ import ( "github.com/stretchr/testify/assert" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - . "github.com/bnb-chain/tss-lib/crypto/paillier" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + . "github.com/bnb-chain/tss-lib/v2/crypto/paillier" + "github.com/bnb-chain/tss-lib/v2/tss" ) // Using a modulus length of 2048 is recommended in the GG18 spec diff --git a/crypto/schnorr/schnorr_proof.go b/crypto/schnorr/schnorr_proof.go index bf12d44e..3a4b6aa8 100644 --- a/crypto/schnorr/schnorr_proof.go +++ b/crypto/schnorr/schnorr_proof.go @@ -10,8 +10,8 @@ import ( "errors" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" ) type ( diff --git a/crypto/schnorr/schnorr_proof_test.go b/crypto/schnorr/schnorr_proof_test.go index 91175024..fbf633ea 100644 --- a/crypto/schnorr/schnorr_proof_test.go +++ b/crypto/schnorr/schnorr_proof_test.go @@ -11,10 +11,10 @@ import ( "github.com/stretchr/testify/assert" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - . "github.com/bnb-chain/tss-lib/crypto/schnorr" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + . "github.com/bnb-chain/tss-lib/v2/crypto/schnorr" + "github.com/bnb-chain/tss-lib/v2/tss" ) var ( diff --git a/crypto/utils.go b/crypto/utils.go index 54eddbde..5448113a 100644 --- a/crypto/utils.go +++ b/crypto/utils.go @@ -10,7 +10,7 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/v2/common" ) func GenerateNTildei(safePrimes [2]*big.Int) (NTildei, h1i, h2i *big.Int, err error) { diff --git a/crypto/vss/feldman_vss.go b/crypto/vss/feldman_vss.go index 5904dc2d..21c49714 100644 --- a/crypto/vss/feldman_vss.go +++ b/crypto/vss/feldman_vss.go @@ -16,8 +16,8 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" ) type ( @@ -58,7 +58,6 @@ func CheckIndexes(ec elliptic.Curve, indexes []*big.Int) ([]*big.Int, error) { // Returns a new array of secret shares created by Shamir's Secret Sharing Algorithm, // requiring a minimum number of shares to recreate, of length shares, from the input secret -// func Create(ec elliptic.Curve, threshold int, secret *big.Int, indexes []*big.Int) (Vs, Shares, error) { if secret == nil || indexes == nil { return nil, nil, fmt.Errorf("vss secret or indexes == nil: %v %v", secret, indexes) @@ -158,8 +157,8 @@ func samplePolynomial(ec elliptic.Curve, threshold int, secret *big.Int) []*big. // Evauluates a polynomial with coefficients such that: // evaluatePolynomial([a, b, c, d], x): -// returns a + bx + cx^2 + dx^3 // +// returns a + bx + cx^2 + dx^3 func evaluatePolynomial(ec elliptic.Curve, threshold int, v []*big.Int, id *big.Int) (result *big.Int) { q := ec.Params().N modQ := common.ModInt(q) diff --git a/crypto/vss/feldman_vss_test.go b/crypto/vss/feldman_vss_test.go index d6c0284d..ef55f685 100644 --- a/crypto/vss/feldman_vss_test.go +++ b/crypto/vss/feldman_vss_test.go @@ -12,9 +12,9 @@ import ( "github.com/stretchr/testify/assert" - "github.com/bnb-chain/tss-lib/common" - . "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + . "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/tss" ) func TestCheckIndexesDup(t *testing.T) { diff --git a/ecdsa/keygen/dln_verifier.go b/ecdsa/keygen/dln_verifier.go index cc6be8bf..c6ec68d7 100644 --- a/ecdsa/keygen/dln_verifier.go +++ b/ecdsa/keygen/dln_verifier.go @@ -10,7 +10,7 @@ import ( "errors" "math/big" - "github.com/bnb-chain/tss-lib/crypto/dlnproof" + "github.com/bnb-chain/tss-lib/v2/crypto/dlnproof" ) type DlnProofVerifier struct { diff --git a/ecdsa/keygen/dln_verifier_test.go b/ecdsa/keygen/dln_verifier_test.go index 738bbf6b..89d76bba 100644 --- a/ecdsa/keygen/dln_verifier_test.go +++ b/ecdsa/keygen/dln_verifier_test.go @@ -11,7 +11,7 @@ import ( "runtime" "testing" - "github.com/bnb-chain/tss-lib/crypto/dlnproof" + "github.com/bnb-chain/tss-lib/v2/crypto/dlnproof" ) func BenchmarkDlnProof_Verify(b *testing.B) { diff --git a/ecdsa/keygen/local_party.go b/ecdsa/keygen/local_party.go index 5513aba9..05be2554 100644 --- a/ecdsa/keygen/local_party.go +++ b/ecdsa/keygen/local_party.go @@ -11,10 +11,10 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" - cmt "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + cmt "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/tss" ) // Implements Party diff --git a/ecdsa/keygen/local_party_test.go b/ecdsa/keygen/local_party_test.go index c392f549..66499479 100644 --- a/ecdsa/keygen/local_party_test.go +++ b/ecdsa/keygen/local_party_test.go @@ -20,13 +20,13 @@ import ( "github.com/ipfs/go-log" "github.com/stretchr/testify/assert" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/dlnproof" - "github.com/bnb-chain/tss-lib/crypto/paillier" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/test" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/dlnproof" + "github.com/bnb-chain/tss-lib/v2/crypto/paillier" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/test" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/ecdsa/keygen/messages.go b/ecdsa/keygen/messages.go index 9be7d852..b4d6062c 100644 --- a/ecdsa/keygen/messages.go +++ b/ecdsa/keygen/messages.go @@ -7,16 +7,16 @@ package keygen import ( - "github.com/bnb-chain/tss-lib/crypto/facproof" - "github.com/bnb-chain/tss-lib/crypto/modproof" + "github.com/bnb-chain/tss-lib/v2/crypto/facproof" + "github.com/bnb-chain/tss-lib/v2/crypto/modproof" "math/big" - "github.com/bnb-chain/tss-lib/common" - cmt "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/dlnproof" - "github.com/bnb-chain/tss-lib/crypto/paillier" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + cmt "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/dlnproof" + "github.com/bnb-chain/tss-lib/v2/crypto/paillier" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/tss" ) // These messages were generated from Protocol Buffers definitions into ecdsa-keygen.pb.go diff --git a/ecdsa/keygen/prepare.go b/ecdsa/keygen/prepare.go index 775ef53e..cfbc127f 100644 --- a/ecdsa/keygen/prepare.go +++ b/ecdsa/keygen/prepare.go @@ -13,8 +13,8 @@ import ( "runtime" "time" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto/paillier" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto/paillier" ) const ( diff --git a/ecdsa/keygen/round_1.go b/ecdsa/keygen/round_1.go index 96104475..306ca2be 100644 --- a/ecdsa/keygen/round_1.go +++ b/ecdsa/keygen/round_1.go @@ -10,12 +10,12 @@ import ( "errors" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - cmts "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/dlnproof" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + cmts "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/dlnproof" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/tss" ) var ( diff --git a/ecdsa/keygen/round_2.go b/ecdsa/keygen/round_2.go index 364235e9..3eac8eba 100644 --- a/ecdsa/keygen/round_2.go +++ b/ecdsa/keygen/round_2.go @@ -12,11 +12,11 @@ import ( "math/big" "sync" - "github.com/bnb-chain/tss-lib/crypto/facproof" - "github.com/bnb-chain/tss-lib/crypto/modproof" + "github.com/bnb-chain/tss-lib/v2/crypto/facproof" + "github.com/bnb-chain/tss-lib/v2/crypto/modproof" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/ecdsa/keygen/round_3.go b/ecdsa/keygen/round_3.go index 205569ed..b704358a 100644 --- a/ecdsa/keygen/round_3.go +++ b/ecdsa/keygen/round_3.go @@ -13,11 +13,11 @@ import ( "github.com/hashicorp/go-multierror" errors2 "github.com/pkg/errors" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round3) Start() *tss.Error { diff --git a/ecdsa/keygen/round_4.go b/ecdsa/keygen/round_4.go index 18603904..23abc2dc 100644 --- a/ecdsa/keygen/round_4.go +++ b/ecdsa/keygen/round_4.go @@ -9,9 +9,9 @@ package keygen import ( "errors" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto/paillier" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto/paillier" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round4) Start() *tss.Error { diff --git a/ecdsa/keygen/rounds.go b/ecdsa/keygen/rounds.go index 5bce6d10..48f82691 100644 --- a/ecdsa/keygen/rounds.go +++ b/ecdsa/keygen/rounds.go @@ -9,8 +9,8 @@ package keygen import ( "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/ecdsa/keygen/save_data.go b/ecdsa/keygen/save_data.go index 9218d9b6..ec43d436 100644 --- a/ecdsa/keygen/save_data.go +++ b/ecdsa/keygen/save_data.go @@ -11,9 +11,9 @@ import ( "errors" "math/big" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/paillier" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/paillier" + "github.com/bnb-chain/tss-lib/v2/tss" ) type ( diff --git a/ecdsa/keygen/test_utils.go b/ecdsa/keygen/test_utils.go index 85aa117c..0169865e 100644 --- a/ecdsa/keygen/test_utils.go +++ b/ecdsa/keygen/test_utils.go @@ -18,8 +18,8 @@ import ( "github.com/pkg/errors" - "github.com/bnb-chain/tss-lib/test" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/test" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/ecdsa/resharing/local_party.go b/ecdsa/resharing/local_party.go index a8efdbb0..00c403e6 100644 --- a/ecdsa/resharing/local_party.go +++ b/ecdsa/resharing/local_party.go @@ -10,12 +10,12 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - cmt "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/ecdsa/keygen" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + cmt "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/v2/tss" ) // Implements Party diff --git a/ecdsa/resharing/local_party_test.go b/ecdsa/resharing/local_party_test.go index 278de530..91861059 100644 --- a/ecdsa/resharing/local_party_test.go +++ b/ecdsa/resharing/local_party_test.go @@ -17,13 +17,13 @@ import ( "github.com/ipfs/go-log" "github.com/stretchr/testify/assert" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/ecdsa/keygen" - . "github.com/bnb-chain/tss-lib/ecdsa/resharing" - "github.com/bnb-chain/tss-lib/ecdsa/signing" - "github.com/bnb-chain/tss-lib/test" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/ecdsa/keygen" + . "github.com/bnb-chain/tss-lib/v2/ecdsa/resharing" + "github.com/bnb-chain/tss-lib/v2/ecdsa/signing" + "github.com/bnb-chain/tss-lib/v2/test" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/ecdsa/resharing/messages.go b/ecdsa/resharing/messages.go index b655b309..e9f3b3cb 100644 --- a/ecdsa/resharing/messages.go +++ b/ecdsa/resharing/messages.go @@ -10,15 +10,15 @@ import ( "crypto/elliptic" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - cmt "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/dlnproof" - "github.com/bnb-chain/tss-lib/crypto/facproof" - "github.com/bnb-chain/tss-lib/crypto/modproof" - "github.com/bnb-chain/tss-lib/crypto/paillier" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + cmt "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/dlnproof" + "github.com/bnb-chain/tss-lib/v2/crypto/facproof" + "github.com/bnb-chain/tss-lib/v2/crypto/modproof" + "github.com/bnb-chain/tss-lib/v2/crypto/paillier" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/tss" ) // These messages were generated from Protocol Buffers definitions into ecdsa-resharing.pb.go diff --git a/ecdsa/resharing/round_1_old_step_1.go b/ecdsa/resharing/round_1_old_step_1.go index c7d71ea9..8e1ce9c4 100644 --- a/ecdsa/resharing/round_1_old_step_1.go +++ b/ecdsa/resharing/round_1_old_step_1.go @@ -11,12 +11,12 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/ecdsa/keygen" - "github.com/bnb-chain/tss-lib/ecdsa/signing" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/v2/ecdsa/signing" + "github.com/bnb-chain/tss-lib/v2/tss" ) // round 1 represents round 1 of the keygen part of the GG18 ECDSA TSS spec (Gennaro, Goldfeder; 2018) diff --git a/ecdsa/resharing/round_2_new_step_1.go b/ecdsa/resharing/round_2_new_step_1.go index adebda90..8a47283a 100644 --- a/ecdsa/resharing/round_2_new_step_1.go +++ b/ecdsa/resharing/round_2_new_step_1.go @@ -11,11 +11,11 @@ import ( "errors" "math/big" - "github.com/bnb-chain/tss-lib/crypto/modproof" + "github.com/bnb-chain/tss-lib/v2/crypto/modproof" - "github.com/bnb-chain/tss-lib/crypto/dlnproof" - "github.com/bnb-chain/tss-lib/ecdsa/keygen" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/crypto/dlnproof" + "github.com/bnb-chain/tss-lib/v2/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/v2/tss" ) var ( diff --git a/ecdsa/resharing/round_3_old_step_2.go b/ecdsa/resharing/round_3_old_step_2.go index fcaf755a..f222290e 100644 --- a/ecdsa/resharing/round_3_old_step_2.go +++ b/ecdsa/resharing/round_3_old_step_2.go @@ -9,7 +9,7 @@ package resharing import ( "errors" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round3) Start() *tss.Error { diff --git a/ecdsa/resharing/round_4_new_step_2.go b/ecdsa/resharing/round_4_new_step_2.go index 55eeb3a1..f3115c59 100644 --- a/ecdsa/resharing/round_4_new_step_2.go +++ b/ecdsa/resharing/round_4_new_step_2.go @@ -12,16 +12,16 @@ import ( "math/big" "sync" - "github.com/bnb-chain/tss-lib/crypto/facproof" + "github.com/bnb-chain/tss-lib/v2/crypto/facproof" errors2 "github.com/pkg/errors" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/ecdsa/keygen" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round4) Start() *tss.Error { diff --git a/ecdsa/resharing/round_5_new_step_3.go b/ecdsa/resharing/round_5_new_step_3.go index b821f485..6c149c02 100644 --- a/ecdsa/resharing/round_5_new_step_3.go +++ b/ecdsa/resharing/round_5_new_step_3.go @@ -10,8 +10,8 @@ import ( "errors" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round5) Start() *tss.Error { diff --git a/ecdsa/resharing/rounds.go b/ecdsa/resharing/rounds.go index 8dc78a5b..d2c24e81 100644 --- a/ecdsa/resharing/rounds.go +++ b/ecdsa/resharing/rounds.go @@ -10,10 +10,10 @@ import ( "errors" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/ecdsa/keygen" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/ecdsa/signing/finalize.go b/ecdsa/signing/finalize.go index b2fc670f..302ee321 100644 --- a/ecdsa/signing/finalize.go +++ b/ecdsa/signing/finalize.go @@ -12,8 +12,8 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *finalization) Start() *tss.Error { diff --git a/ecdsa/signing/key_derivation_util.go b/ecdsa/signing/key_derivation_util.go index e5826a71..668d9d4f 100644 --- a/ecdsa/signing/key_derivation_util.go +++ b/ecdsa/signing/key_derivation_util.go @@ -7,10 +7,10 @@ import ( "crypto/elliptic" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/ckd" - "github.com/bnb-chain/tss-lib/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/ckd" + "github.com/bnb-chain/tss-lib/v2/ecdsa/keygen" "github.com/btcsuite/btcd/chaincfg" ) diff --git a/ecdsa/signing/local_party.go b/ecdsa/signing/local_party.go index c6575179..86172e5f 100644 --- a/ecdsa/signing/local_party.go +++ b/ecdsa/signing/local_party.go @@ -11,12 +11,12 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - cmt "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/mta" - "github.com/bnb-chain/tss-lib/ecdsa/keygen" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + cmt "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/mta" + "github.com/bnb-chain/tss-lib/v2/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/v2/tss" ) // Implements Party diff --git a/ecdsa/signing/local_party_test.go b/ecdsa/signing/local_party_test.go index 51b83873..303c54f5 100644 --- a/ecdsa/signing/local_party_test.go +++ b/ecdsa/signing/local_party_test.go @@ -18,10 +18,10 @@ import ( "github.com/ipfs/go-log" "github.com/stretchr/testify/assert" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/ecdsa/keygen" - "github.com/bnb-chain/tss-lib/test" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/v2/test" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/ecdsa/signing/messages.go b/ecdsa/signing/messages.go index fbb2a621..8d3d853a 100644 --- a/ecdsa/signing/messages.go +++ b/ecdsa/signing/messages.go @@ -10,12 +10,12 @@ import ( "crypto/elliptic" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - cmt "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/mta" - "github.com/bnb-chain/tss-lib/crypto/schnorr" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + cmt "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/mta" + "github.com/bnb-chain/tss-lib/v2/crypto/schnorr" + "github.com/bnb-chain/tss-lib/v2/tss" ) // These messages were generated from Protocol Buffers definitions into ecdsa-signing.pb.go diff --git a/ecdsa/signing/prepare.go b/ecdsa/signing/prepare.go index 60f107bf..ae6d186c 100644 --- a/ecdsa/signing/prepare.go +++ b/ecdsa/signing/prepare.go @@ -11,8 +11,8 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" ) // PrepareForSigning(), GG18Spec (11) Fig. 14 diff --git a/ecdsa/signing/round_1.go b/ecdsa/signing/round_1.go index e1b8d0e3..23ed876e 100644 --- a/ecdsa/signing/round_1.go +++ b/ecdsa/signing/round_1.go @@ -11,12 +11,12 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/mta" - "github.com/bnb-chain/tss-lib/ecdsa/keygen" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/mta" + "github.com/bnb-chain/tss-lib/v2/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/v2/tss" ) var ( diff --git a/ecdsa/signing/round_2.go b/ecdsa/signing/round_2.go index 489d22bd..0568f3dd 100644 --- a/ecdsa/signing/round_2.go +++ b/ecdsa/signing/round_2.go @@ -13,8 +13,8 @@ import ( errorspkg "github.com/pkg/errors" - "github.com/bnb-chain/tss-lib/crypto/mta" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/crypto/mta" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round2) Start() *tss.Error { diff --git a/ecdsa/signing/round_3.go b/ecdsa/signing/round_3.go index 05cc9588..38ae9b00 100644 --- a/ecdsa/signing/round_3.go +++ b/ecdsa/signing/round_3.go @@ -13,9 +13,9 @@ import ( errorspkg "github.com/pkg/errors" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto/mta" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto/mta" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round3) Start() *tss.Error { diff --git a/ecdsa/signing/round_4.go b/ecdsa/signing/round_4.go index afc4b59e..e7183690 100644 --- a/ecdsa/signing/round_4.go +++ b/ecdsa/signing/round_4.go @@ -12,9 +12,9 @@ import ( errors2 "github.com/pkg/errors" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto/schnorr" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto/schnorr" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round4) Start() *tss.Error { diff --git a/ecdsa/signing/round_5.go b/ecdsa/signing/round_5.go index 0162a778..3cbe19c5 100644 --- a/ecdsa/signing/round_5.go +++ b/ecdsa/signing/round_5.go @@ -12,10 +12,10 @@ import ( errors2 "github.com/pkg/errors" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round5) Start() *tss.Error { diff --git a/ecdsa/signing/round_6.go b/ecdsa/signing/round_6.go index b104fdd5..278d19be 100644 --- a/ecdsa/signing/round_6.go +++ b/ecdsa/signing/round_6.go @@ -12,8 +12,8 @@ import ( errors2 "github.com/pkg/errors" - "github.com/bnb-chain/tss-lib/crypto/schnorr" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/crypto/schnorr" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round6) Start() *tss.Error { diff --git a/ecdsa/signing/round_7.go b/ecdsa/signing/round_7.go index d2314ca1..a50be65d 100644 --- a/ecdsa/signing/round_7.go +++ b/ecdsa/signing/round_7.go @@ -12,10 +12,10 @@ import ( errors2 "github.com/pkg/errors" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round7) Start() *tss.Error { diff --git a/ecdsa/signing/round_8.go b/ecdsa/signing/round_8.go index 361a490b..f8b8e294 100644 --- a/ecdsa/signing/round_8.go +++ b/ecdsa/signing/round_8.go @@ -9,7 +9,7 @@ package signing import ( "errors" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round8) Start() *tss.Error { diff --git a/ecdsa/signing/round_9.go b/ecdsa/signing/round_9.go index dcc7c083..3f74c21b 100644 --- a/ecdsa/signing/round_9.go +++ b/ecdsa/signing/round_9.go @@ -9,8 +9,8 @@ package signing import ( "errors" - "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round9) Start() *tss.Error { diff --git a/ecdsa/signing/rounds.go b/ecdsa/signing/rounds.go index 5a281b04..10d3eeb9 100644 --- a/ecdsa/signing/rounds.go +++ b/ecdsa/signing/rounds.go @@ -10,10 +10,10 @@ import ( "errors" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/ecdsa/keygen" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/ecdsa/keygen" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/eddsa/keygen/local_party.go b/eddsa/keygen/local_party.go index 39900f2e..ebff0292 100644 --- a/eddsa/keygen/local_party.go +++ b/eddsa/keygen/local_party.go @@ -11,10 +11,10 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" - cmt "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + cmt "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/tss" ) // Implements Party diff --git a/eddsa/keygen/local_party_test.go b/eddsa/keygen/local_party_test.go index fcfae33e..cad65cb3 100644 --- a/eddsa/keygen/local_party_test.go +++ b/eddsa/keygen/local_party_test.go @@ -19,11 +19,11 @@ import ( "github.com/ipfs/go-log" "github.com/stretchr/testify/assert" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/test" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/test" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/eddsa/keygen/messages.go b/eddsa/keygen/messages.go index 50b8ac54..d6667073 100644 --- a/eddsa/keygen/messages.go +++ b/eddsa/keygen/messages.go @@ -10,12 +10,12 @@ import ( "crypto/elliptic" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - cmt "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/schnorr" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + cmt "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/schnorr" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/tss" ) // These messages were generated from Protocol Buffers definitions into eddsa-keygen.pb.go diff --git a/eddsa/keygen/round_1.go b/eddsa/keygen/round_1.go index 4608de03..90485ee6 100644 --- a/eddsa/keygen/round_1.go +++ b/eddsa/keygen/round_1.go @@ -10,11 +10,11 @@ import ( "errors" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - cmts "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + cmts "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/tss" ) var ( diff --git a/eddsa/keygen/round_2.go b/eddsa/keygen/round_2.go index 0148bcf6..d1a603b4 100644 --- a/eddsa/keygen/round_2.go +++ b/eddsa/keygen/round_2.go @@ -12,8 +12,8 @@ import ( errors2 "github.com/pkg/errors" - "github.com/bnb-chain/tss-lib/crypto/schnorr" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/crypto/schnorr" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round2) Start() *tss.Error { diff --git a/eddsa/keygen/round_3.go b/eddsa/keygen/round_3.go index 393af636..2ffa27b3 100644 --- a/eddsa/keygen/round_3.go +++ b/eddsa/keygen/round_3.go @@ -13,11 +13,11 @@ import ( "github.com/hashicorp/go-multierror" errors2 "github.com/pkg/errors" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round3) Start() *tss.Error { diff --git a/eddsa/keygen/rounds.go b/eddsa/keygen/rounds.go index 153a3b28..d361e5c3 100644 --- a/eddsa/keygen/rounds.go +++ b/eddsa/keygen/rounds.go @@ -9,8 +9,8 @@ package keygen import ( "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/eddsa/keygen/save_data.go b/eddsa/keygen/save_data.go index ae40c3d2..a7be639f 100644 --- a/eddsa/keygen/save_data.go +++ b/eddsa/keygen/save_data.go @@ -10,8 +10,8 @@ import ( "encoding/hex" "math/big" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/tss" ) type ( diff --git a/eddsa/keygen/test_utils.go b/eddsa/keygen/test_utils.go index ba8eac13..c6d8e985 100644 --- a/eddsa/keygen/test_utils.go +++ b/eddsa/keygen/test_utils.go @@ -17,8 +17,8 @@ import ( "github.com/pkg/errors" - "github.com/bnb-chain/tss-lib/test" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/test" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/eddsa/resharing/local_party.go b/eddsa/resharing/local_party.go index eba35640..45e74a8b 100644 --- a/eddsa/resharing/local_party.go +++ b/eddsa/resharing/local_party.go @@ -10,12 +10,12 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - cmt "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/eddsa/keygen" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + cmt "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/eddsa/keygen" + "github.com/bnb-chain/tss-lib/v2/tss" ) // Implements Party diff --git a/eddsa/resharing/local_party_test.go b/eddsa/resharing/local_party_test.go index 0ef6ea73..1499c5a3 100644 --- a/eddsa/resharing/local_party_test.go +++ b/eddsa/resharing/local_party_test.go @@ -15,13 +15,13 @@ import ( "github.com/ipfs/go-log" "github.com/stretchr/testify/assert" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/eddsa/keygen" - . "github.com/bnb-chain/tss-lib/eddsa/resharing" - "github.com/bnb-chain/tss-lib/eddsa/signing" - "github.com/bnb-chain/tss-lib/test" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/eddsa/keygen" + . "github.com/bnb-chain/tss-lib/v2/eddsa/resharing" + "github.com/bnb-chain/tss-lib/v2/eddsa/signing" + "github.com/bnb-chain/tss-lib/v2/test" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/eddsa/resharing/messages.go b/eddsa/resharing/messages.go index 23003bb2..abf45bb4 100644 --- a/eddsa/resharing/messages.go +++ b/eddsa/resharing/messages.go @@ -10,11 +10,11 @@ import ( "crypto/elliptic" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - cmt "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + cmt "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/tss" ) // These messages were generated from Protocol Buffers definitions into eddsa-resharing.pb.go diff --git a/eddsa/resharing/round_1_old_step_1.go b/eddsa/resharing/round_1_old_step_1.go index 5b5588cb..bdb7eb72 100644 --- a/eddsa/resharing/round_1_old_step_1.go +++ b/eddsa/resharing/round_1_old_step_1.go @@ -10,12 +10,12 @@ import ( "errors" "fmt" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/eddsa/keygen" - "github.com/bnb-chain/tss-lib/eddsa/signing" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/eddsa/keygen" + "github.com/bnb-chain/tss-lib/v2/eddsa/signing" + "github.com/bnb-chain/tss-lib/v2/tss" ) // round 1 represents round 1 of the keygen part of the EDDSA TSS spec diff --git a/eddsa/resharing/round_2_new_step_1.go b/eddsa/resharing/round_2_new_step_1.go index 2a61d7f4..38270879 100644 --- a/eddsa/resharing/round_2_new_step_1.go +++ b/eddsa/resharing/round_2_new_step_1.go @@ -9,7 +9,7 @@ package resharing import ( "errors" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round2) Start() *tss.Error { diff --git a/eddsa/resharing/round_3_old_step_2.go b/eddsa/resharing/round_3_old_step_2.go index 21e44106..db2e1112 100644 --- a/eddsa/resharing/round_3_old_step_2.go +++ b/eddsa/resharing/round_3_old_step_2.go @@ -9,7 +9,7 @@ package resharing import ( "errors" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round3) Start() *tss.Error { diff --git a/eddsa/resharing/round_4_new_step_2.go b/eddsa/resharing/round_4_new_step_2.go index 18acfe4d..ab045e41 100644 --- a/eddsa/resharing/round_4_new_step_2.go +++ b/eddsa/resharing/round_4_new_step_2.go @@ -11,11 +11,11 @@ import ( "github.com/pkg/errors" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/vss" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/vss" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round4) Start() *tss.Error { diff --git a/eddsa/resharing/round_5_new_step_3.go b/eddsa/resharing/round_5_new_step_3.go index 69da2c14..6a4d5e75 100644 --- a/eddsa/resharing/round_5_new_step_3.go +++ b/eddsa/resharing/round_5_new_step_3.go @@ -9,7 +9,7 @@ package resharing import ( "errors" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round5) Start() *tss.Error { diff --git a/eddsa/resharing/rounds.go b/eddsa/resharing/rounds.go index b3376692..e9c79034 100644 --- a/eddsa/resharing/rounds.go +++ b/eddsa/resharing/rounds.go @@ -7,8 +7,8 @@ package resharing import ( - "github.com/bnb-chain/tss-lib/eddsa/keygen" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/eddsa/keygen" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/eddsa/signing/finalize.go b/eddsa/signing/finalize.go index 25c28b4c..6044abb9 100644 --- a/eddsa/signing/finalize.go +++ b/eddsa/signing/finalize.go @@ -14,7 +14,7 @@ import ( "github.com/agl/ed25519/edwards25519" "github.com/decred/dcrd/dcrec/edwards/v2" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *finalization) Start() *tss.Error { diff --git a/eddsa/signing/local_party.go b/eddsa/signing/local_party.go index 115988a5..814f6fc6 100644 --- a/eddsa/signing/local_party.go +++ b/eddsa/signing/local_party.go @@ -11,11 +11,11 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - cmt "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/eddsa/keygen" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + cmt "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/eddsa/keygen" + "github.com/bnb-chain/tss-lib/v2/tss" ) // Implements Party diff --git a/eddsa/signing/local_party_test.go b/eddsa/signing/local_party_test.go index 35a18eee..53e57e39 100644 --- a/eddsa/signing/local_party_test.go +++ b/eddsa/signing/local_party_test.go @@ -17,10 +17,10 @@ import ( "github.com/ipfs/go-log" "github.com/stretchr/testify/assert" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/eddsa/keygen" - "github.com/bnb-chain/tss-lib/test" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/eddsa/keygen" + "github.com/bnb-chain/tss-lib/v2/test" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/eddsa/signing/messages.go b/eddsa/signing/messages.go index dcfbf734..c60e1880 100644 --- a/eddsa/signing/messages.go +++ b/eddsa/signing/messages.go @@ -10,11 +10,11 @@ import ( "crypto/elliptic" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - cmt "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/crypto/schnorr" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + cmt "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/crypto/schnorr" + "github.com/bnb-chain/tss-lib/v2/tss" ) // These messages were generated from Protocol Buffers definitions into eddsa-signing.pb.go diff --git a/eddsa/signing/prepare.go b/eddsa/signing/prepare.go index 1838b925..1e86b437 100644 --- a/eddsa/signing/prepare.go +++ b/eddsa/signing/prepare.go @@ -11,7 +11,7 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/v2/common" ) // PrepareForSigning(), Fig. 7 diff --git a/eddsa/signing/round_1.go b/eddsa/signing/round_1.go index 0ece1fcb..96e752f0 100644 --- a/eddsa/signing/round_1.go +++ b/eddsa/signing/round_1.go @@ -11,11 +11,11 @@ import ( "fmt" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/eddsa/keygen" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/eddsa/keygen" + "github.com/bnb-chain/tss-lib/v2/tss" ) // round 1 represents round 1 of the signing part of the EDDSA TSS spec diff --git a/eddsa/signing/round_2.go b/eddsa/signing/round_2.go index 027eb519..82f6c12a 100644 --- a/eddsa/signing/round_2.go +++ b/eddsa/signing/round_2.go @@ -12,8 +12,8 @@ import ( errors2 "github.com/pkg/errors" - "github.com/bnb-chain/tss-lib/crypto/schnorr" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/crypto/schnorr" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round2) Start() *tss.Error { diff --git a/eddsa/signing/round_3.go b/eddsa/signing/round_3.go index 3f636f2c..715c3a73 100644 --- a/eddsa/signing/round_3.go +++ b/eddsa/signing/round_3.go @@ -11,12 +11,12 @@ import ( "math/big" "github.com/agl/ed25519/edwards25519" - "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/v2/common" "github.com/pkg/errors" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/crypto/commitments" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/crypto/commitments" + "github.com/bnb-chain/tss-lib/v2/tss" ) func (round *round3) Start() *tss.Error { diff --git a/eddsa/signing/rounds.go b/eddsa/signing/rounds.go index 841ed087..7a8a8a62 100644 --- a/eddsa/signing/rounds.go +++ b/eddsa/signing/rounds.go @@ -10,10 +10,10 @@ import ( "errors" "math/big" - "github.com/bnb-chain/tss-lib/common" - "github.com/bnb-chain/tss-lib/crypto" - "github.com/bnb-chain/tss-lib/eddsa/keygen" - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/common" + "github.com/bnb-chain/tss-lib/v2/crypto" + "github.com/bnb-chain/tss-lib/v2/eddsa/keygen" + "github.com/bnb-chain/tss-lib/v2/tss" ) const ( diff --git a/eddsa/signing/utils.go b/eddsa/signing/utils.go index ebd77569..d3b41f8f 100644 --- a/eddsa/signing/utils.go +++ b/eddsa/signing/utils.go @@ -12,7 +12,7 @@ import ( "github.com/agl/ed25519/edwards25519" - "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/v2/common" ) func encodedBytesToBigInt(s *[32]byte) *big.Int { diff --git a/go.mod b/go.mod index c5d5426f..05953027 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/bnb-chain/tss-lib +module github.com/bnb-chain/tss-lib/v2 go 1.16 diff --git a/test/utils.go b/test/utils.go index 104e4d4b..633d34ec 100644 --- a/test/utils.go +++ b/test/utils.go @@ -7,7 +7,7 @@ package test import ( - "github.com/bnb-chain/tss-lib/tss" + "github.com/bnb-chain/tss-lib/v2/tss" ) func SharedPartyUpdater(party tss.Party, msg tss.Message, errCh chan<- *tss.Error) { diff --git a/tss/party.go b/tss/party.go index 583a59b3..fd06fed3 100644 --- a/tss/party.go +++ b/tss/party.go @@ -11,7 +11,7 @@ import ( "fmt" "sync" - "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/v2/common" ) type Party interface { diff --git a/tss/party_id.go b/tss/party_id.go index 58506641..e21c9310 100644 --- a/tss/party_id.go +++ b/tss/party_id.go @@ -11,7 +11,7 @@ import ( "math/big" "sort" - "github.com/bnb-chain/tss-lib/common" + "github.com/bnb-chain/tss-lib/v2/common" ) type ( From fbb0ef7b26e781b261ab0d0065e417be2cca1b39 Mon Sep 17 00:00:00 2001 From: Sun Xia Date: Wed, 20 Sep 2023 11:29:34 +0800 Subject: [PATCH 47/50] use *common.SignatureData instead of common.SignatureData to fix issue #163 (#251) --- ecdsa/resharing/local_party_test.go | 2 +- ecdsa/signing/finalize.go | 2 +- ecdsa/signing/local_party.go | 12 ++++++------ ecdsa/signing/local_party_test.go | 4 ++-- ecdsa/signing/round_1.go | 2 +- ecdsa/signing/rounds.go | 2 +- eddsa/resharing/local_party_test.go | 2 +- eddsa/signing/finalize.go | 2 +- eddsa/signing/local_party.go | 10 +++++----- eddsa/signing/local_party_test.go | 2 +- eddsa/signing/round_1.go | 2 +- eddsa/signing/rounds.go | 2 +- 12 files changed, 22 insertions(+), 22 deletions(-) diff --git a/ecdsa/resharing/local_party_test.go b/ecdsa/resharing/local_party_test.go index 91861059..df2981ac 100644 --- a/ecdsa/resharing/local_party_test.go +++ b/ecdsa/resharing/local_party_test.go @@ -173,7 +173,7 @@ signing: signErrCh := make(chan *tss.Error, len(signPIDs)) signOutCh := make(chan tss.Message, len(signPIDs)) - signEndCh := make(chan common.SignatureData, len(signPIDs)) + signEndCh := make(chan *common.SignatureData, len(signPIDs)) for j, signPID := range signPIDs { params := tss.NewParameters(tss.S256(), signP2pCtx, signPID, len(signPIDs), newThreshold) diff --git a/ecdsa/signing/finalize.go b/ecdsa/signing/finalize.go index 302ee321..995702fe 100644 --- a/ecdsa/signing/finalize.go +++ b/ecdsa/signing/finalize.go @@ -73,7 +73,7 @@ func (round *finalization) Start() *tss.Error { return round.WrapError(fmt.Errorf("signature verification failed")) } - round.end <- *round.data + round.end <- round.data return nil } diff --git a/ecdsa/signing/local_party.go b/ecdsa/signing/local_party.go index 86172e5f..ae34ad00 100644 --- a/ecdsa/signing/local_party.go +++ b/ecdsa/signing/local_party.go @@ -31,11 +31,11 @@ type ( keys keygen.LocalPartySaveData temp localTempData - data common.SignatureData + data *common.SignatureData // outbound messaging out chan<- tss.Message - end chan<- common.SignatureData + end chan<- *common.SignatureData } localMessageStore struct { @@ -102,7 +102,7 @@ func NewLocalParty( params *tss.Parameters, key keygen.LocalPartySaveData, out chan<- tss.Message, - end chan<- common.SignatureData) tss.Party { + end chan<- *common.SignatureData) tss.Party { return NewLocalPartyWithKDD(msg, params, key, nil, out, end) } @@ -113,7 +113,7 @@ func NewLocalPartyWithKDD( key keygen.LocalPartySaveData, keyDerivationDelta *big.Int, out chan<- tss.Message, - end chan<- common.SignatureData, + end chan<- *common.SignatureData, ) tss.Party { partyCount := len(params.Parties().IDs()) p := &LocalParty{ @@ -121,7 +121,7 @@ func NewLocalPartyWithKDD( params: params, keys: keygen.BuildLocalSaveDataSubset(key, params.Parties().IDs()), temp: localTempData{}, - data: common.SignatureData{}, + data: &common.SignatureData{}, out: out, end: end, } @@ -151,7 +151,7 @@ func NewLocalPartyWithKDD( } func (p *LocalParty) FirstRound() tss.Round { - return newRound1(p.params, &p.keys, &p.data, &p.temp, p.out, p.end) + return newRound1(p.params, &p.keys, p.data, &p.temp, p.out, p.end) } func (p *LocalParty) Start() *tss.Error { diff --git a/ecdsa/signing/local_party_test.go b/ecdsa/signing/local_party_test.go index 303c54f5..ffab5402 100644 --- a/ecdsa/signing/local_party_test.go +++ b/ecdsa/signing/local_party_test.go @@ -52,7 +52,7 @@ func TestE2EConcurrent(t *testing.T) { errCh := make(chan *tss.Error, len(signPIDs)) outCh := make(chan tss.Message, len(signPIDs)) - endCh := make(chan common.SignatureData, len(signPIDs)) + endCh := make(chan *common.SignatureData, len(signPIDs)) updater := test.SharedPartyUpdater @@ -161,7 +161,7 @@ func TestE2EWithHDKeyDerivation(t *testing.T) { errCh := make(chan *tss.Error, len(signPIDs)) outCh := make(chan tss.Message, len(signPIDs)) - endCh := make(chan common.SignatureData, len(signPIDs)) + endCh := make(chan *common.SignatureData, len(signPIDs)) updater := test.SharedPartyUpdater diff --git a/ecdsa/signing/round_1.go b/ecdsa/signing/round_1.go index 23ed876e..924b080f 100644 --- a/ecdsa/signing/round_1.go +++ b/ecdsa/signing/round_1.go @@ -24,7 +24,7 @@ var ( ) // round 1 represents round 1 of the signing part of the GG18 ECDSA TSS spec (Gennaro, Goldfeder; 2018) -func newRound1(params *tss.Parameters, key *keygen.LocalPartySaveData, data *common.SignatureData, temp *localTempData, out chan<- tss.Message, end chan<- common.SignatureData) tss.Round { +func newRound1(params *tss.Parameters, key *keygen.LocalPartySaveData, data *common.SignatureData, temp *localTempData, out chan<- tss.Message, end chan<- *common.SignatureData) tss.Round { return &round1{ &base{params, key, data, temp, out, end, make([]bool, len(params.Parties().IDs())), false, 1}} } diff --git a/ecdsa/signing/rounds.go b/ecdsa/signing/rounds.go index 10d3eeb9..86d01407 100644 --- a/ecdsa/signing/rounds.go +++ b/ecdsa/signing/rounds.go @@ -27,7 +27,7 @@ type ( data *common.SignatureData temp *localTempData out chan<- tss.Message - end chan<- common.SignatureData + end chan<- *common.SignatureData ok []bool // `ok` tracks parties which have been verified by Update() started bool number int diff --git a/eddsa/resharing/local_party_test.go b/eddsa/resharing/local_party_test.go index 1499c5a3..a07554dd 100644 --- a/eddsa/resharing/local_party_test.go +++ b/eddsa/resharing/local_party_test.go @@ -161,7 +161,7 @@ signing: signErrCh := make(chan *tss.Error, len(signPIDs)) signOutCh := make(chan tss.Message, len(signPIDs)) - signEndCh := make(chan common.SignatureData, len(signPIDs)) + signEndCh := make(chan *common.SignatureData, len(signPIDs)) for j, signPID := range signPIDs { params := tss.NewParameters(tss.Edwards(), signP2pCtx, signPID, len(signPIDs), newThreshold) diff --git a/eddsa/signing/finalize.go b/eddsa/signing/finalize.go index 6044abb9..aaafd255 100644 --- a/eddsa/signing/finalize.go +++ b/eddsa/signing/finalize.go @@ -55,7 +55,7 @@ func (round *finalization) Start() *tss.Error { if !ok { return round.WrapError(fmt.Errorf("signature verification failed")) } - round.end <- *round.data + round.end <- round.data return nil } diff --git a/eddsa/signing/local_party.go b/eddsa/signing/local_party.go index 814f6fc6..d11a29c4 100644 --- a/eddsa/signing/local_party.go +++ b/eddsa/signing/local_party.go @@ -30,11 +30,11 @@ type ( keys keygen.LocalPartySaveData temp localTempData - data common.SignatureData + data *common.SignatureData // outbound messaging out chan<- tss.Message - end chan<- common.SignatureData + end chan<- *common.SignatureData } localMessageStore struct { @@ -70,7 +70,7 @@ func NewLocalParty( params *tss.Parameters, key keygen.LocalPartySaveData, out chan<- tss.Message, - end chan<- common.SignatureData, + end chan<- *common.SignatureData, ) tss.Party { partyCount := len(params.Parties().IDs()) p := &LocalParty{ @@ -78,7 +78,7 @@ func NewLocalParty( params: params, keys: keygen.BuildLocalSaveDataSubset(key, params.Parties().IDs()), temp: localTempData{}, - data: common.SignatureData{}, + data: &common.SignatureData{}, out: out, end: end, } @@ -94,7 +94,7 @@ func NewLocalParty( } func (p *LocalParty) FirstRound() tss.Round { - return newRound1(p.params, &p.keys, &p.data, &p.temp, p.out, p.end) + return newRound1(p.params, &p.keys, p.data, &p.temp, p.out, p.end) } func (p *LocalParty) Start() *tss.Error { diff --git a/eddsa/signing/local_party_test.go b/eddsa/signing/local_party_test.go index 53e57e39..33f6fa4e 100644 --- a/eddsa/signing/local_party_test.go +++ b/eddsa/signing/local_party_test.go @@ -55,7 +55,7 @@ func TestE2EConcurrent(t *testing.T) { errCh := make(chan *tss.Error, len(signPIDs)) outCh := make(chan tss.Message, len(signPIDs)) - endCh := make(chan common.SignatureData, len(signPIDs)) + endCh := make(chan *common.SignatureData, len(signPIDs)) updater := test.SharedPartyUpdater diff --git a/eddsa/signing/round_1.go b/eddsa/signing/round_1.go index 96e752f0..629d0b4d 100644 --- a/eddsa/signing/round_1.go +++ b/eddsa/signing/round_1.go @@ -19,7 +19,7 @@ import ( ) // round 1 represents round 1 of the signing part of the EDDSA TSS spec -func newRound1(params *tss.Parameters, key *keygen.LocalPartySaveData, data *common.SignatureData, temp *localTempData, out chan<- tss.Message, end chan<- common.SignatureData) tss.Round { +func newRound1(params *tss.Parameters, key *keygen.LocalPartySaveData, data *common.SignatureData, temp *localTempData, out chan<- tss.Message, end chan<- *common.SignatureData) tss.Round { return &round1{ &base{params, key, data, temp, out, end, make([]bool, len(params.Parties().IDs())), false, 1}} } diff --git a/eddsa/signing/rounds.go b/eddsa/signing/rounds.go index 7a8a8a62..81723c0d 100644 --- a/eddsa/signing/rounds.go +++ b/eddsa/signing/rounds.go @@ -27,7 +27,7 @@ type ( data *common.SignatureData temp *localTempData out chan<- tss.Message - end chan<- common.SignatureData + end chan<- *common.SignatureData ok []bool // `ok` tracks parties which have been verified by Update() started bool number int From b8d526df3275a545e62694f3f30989d9f3b85cd9 Mon Sep 17 00:00:00 2001 From: ycen <44356973+yycen@users.noreply.github.com> Date: Wed, 20 Sep 2023 15:05:14 +0800 Subject: [PATCH 48/50] Update dependencies (#270) * Update dependencies * fix: compatibility of end channel output shift to pointer (#271) Co-authored-by: ZhAnGeek * upgrade dependencies version * Clean code --------- Co-authored-by: ZhAnGeek <35120433+ZhAnGeek@users.noreply.github.com> Co-authored-by: ZhAnGeek Co-authored-by: asdfsx --- crypto/ckd/child_key_derivation.go | 12 +- crypto/ckd/child_key_derivation_test.go | 2 +- crypto/ecpoint_test.go | 6 +- ecdsa/keygen/local_party.go | 4 +- ecdsa/keygen/local_party_test.go | 4 +- ecdsa/keygen/round_1.go | 2 +- ecdsa/keygen/round_4.go | 2 +- ecdsa/keygen/rounds.go | 2 +- ecdsa/resharing/local_party.go | 4 +- ecdsa/resharing/local_party_test.go | 4 +- ecdsa/resharing/round_1_old_step_1.go | 2 +- ecdsa/resharing/round_5_new_step_3.go | 2 +- ecdsa/resharing/rounds.go | 2 +- ecdsa/signing/local_party_test.go | 2 +- eddsa/keygen/local_party.go | 4 +- eddsa/keygen/local_party_test.go | 4 +- eddsa/keygen/round_1.go | 2 +- eddsa/keygen/round_3.go | 2 +- eddsa/keygen/rounds.go | 2 +- eddsa/resharing/local_party.go | 4 +- eddsa/resharing/local_party_test.go | 4 +- eddsa/resharing/round_1_old_step_1.go | 2 +- eddsa/resharing/round_5_new_step_3.go | 2 +- eddsa/resharing/rounds.go | 2 +- go.mod | 28 ++- go.sum | 231 ++++++++++++++++++++---- tss/curve.go | 2 +- 27 files changed, 244 insertions(+), 95 deletions(-) diff --git a/crypto/ckd/child_key_derivation.go b/crypto/ckd/child_key_derivation.go index fd608723..422cffed 100644 --- a/crypto/ckd/child_key_derivation.go +++ b/crypto/ckd/child_key_derivation.go @@ -16,7 +16,7 @@ import ( "github.com/bnb-chain/tss-lib/v2/common" "github.com/bnb-chain/tss-lib/v2/crypto" - "github.com/btcsuite/btcd/btcec" + "github.com/btcsuite/btcd/btcec/v2" "github.com/btcsuite/btcutil/base58" "golang.org/x/crypto/ripemd160" ) @@ -106,13 +106,15 @@ func NewExtendedKeyFromString(key string, curve elliptic.Curve) (*ExtendedKey, e var pubKey ecdsa.PublicKey if c, ok := curve.(*btcec.KoblitzCurve); ok { - // Ensure the public key parses correctly and is actually on the - // secp256k1 curve. - pk, err := btcec.ParsePubKey(keyData, c) + pk, err := btcec.ParsePubKey(keyData) if err != nil { return nil, err } - pubKey = ecdsa.PublicKey(*pk) + pubKey = ecdsa.PublicKey{ + Curve: c, + X: pk.X(), + Y: pk.Y(), + } } else { px, py := elliptic.Unmarshal(curve, keyData) pubKey = ecdsa.PublicKey{ diff --git a/crypto/ckd/child_key_derivation_test.go b/crypto/ckd/child_key_derivation_test.go index 9f97f78f..6511e4ef 100644 --- a/crypto/ckd/child_key_derivation_test.go +++ b/crypto/ckd/child_key_derivation_test.go @@ -10,7 +10,7 @@ import ( "testing" . "github.com/bnb-chain/tss-lib/v2/crypto/ckd" - "github.com/btcsuite/btcd/btcec" + "github.com/btcsuite/btcd/btcec/v2" ) func TestPublicDerivation(t *testing.T) { diff --git a/crypto/ecpoint_test.go b/crypto/ecpoint_test.go index f3cf1af7..5f745dbc 100644 --- a/crypto/ecpoint_test.go +++ b/crypto/ecpoint_test.go @@ -13,7 +13,7 @@ import ( "reflect" "testing" - "github.com/btcsuite/btcd/btcec" + "github.com/btcsuite/btcd/btcec/v2" "github.com/decred/dcrd/dcrec/edwards/v2" "github.com/stretchr/testify/assert" @@ -126,10 +126,10 @@ func TestS256EcpointJsonSerialization(t *testing.T) { pubKeyBytes, err := hex.DecodeString("03935336acb03b2b801d8f8ac5e92c56c4f6e93319901fdfffba9d340a874e2879") assert.NoError(t, err) - pbk, err := btcec.ParsePubKey(pubKeyBytes, btcec.S256()) + pbk, err := btcec.ParsePubKey(pubKeyBytes) assert.NoError(t, err) - point, err := NewECPoint(ec, pbk.X, pbk.Y) + point, err := NewECPoint(ec, pbk.X(), pbk.Y()) assert.NoError(t, err) bz, err := json.Marshal(point) assert.NoError(t, err) diff --git a/ecdsa/keygen/local_party.go b/ecdsa/keygen/local_party.go index 05be2554..68e2b772 100644 --- a/ecdsa/keygen/local_party.go +++ b/ecdsa/keygen/local_party.go @@ -32,7 +32,7 @@ type ( // outbound messaging out chan<- tss.Message - end chan<- LocalPartySaveData + end chan<- *LocalPartySaveData } localMessageStore struct { @@ -60,7 +60,7 @@ type ( func NewLocalParty( params *tss.Parameters, out chan<- tss.Message, - end chan<- LocalPartySaveData, + end chan<- *LocalPartySaveData, optionalPreParams ...LocalPreParams, ) tss.Party { partyCount := params.PartyCount() diff --git a/ecdsa/keygen/local_party_test.go b/ecdsa/keygen/local_party_test.go index 66499479..ac9d4e2a 100644 --- a/ecdsa/keygen/local_party_test.go +++ b/ecdsa/keygen/local_party_test.go @@ -183,7 +183,7 @@ func TestE2EConcurrentAndSaveFixtures(t *testing.T) { errCh := make(chan *tss.Error, len(pIDs)) outCh := make(chan tss.Message, len(pIDs)) - endCh := make(chan LocalPartySaveData, len(pIDs)) + endCh := make(chan *LocalPartySaveData, len(pIDs)) updater := test.SharedPartyUpdater @@ -243,7 +243,7 @@ keygen: // .. here comes a workaround to recover this party's index (it was removed from save data) index, err := save.OriginalIndex() assert.NoErrorf(t, err, "should not be an error getting a party's index from save data") - tryWriteTestFixtureFile(t, index, save) + tryWriteTestFixtureFile(t, index, *save) atomic.AddInt32(&ended, 1) if atomic.LoadInt32(&ended) == int32(len(pIDs)) { diff --git a/ecdsa/keygen/round_1.go b/ecdsa/keygen/round_1.go index 306ca2be..4854e1c4 100644 --- a/ecdsa/keygen/round_1.go +++ b/ecdsa/keygen/round_1.go @@ -23,7 +23,7 @@ var ( ) // round 1 represents round 1 of the keygen part of the GG18 ECDSA TSS spec (Gennaro, Goldfeder; 2018) -func newRound1(params *tss.Parameters, save *LocalPartySaveData, temp *localTempData, out chan<- tss.Message, end chan<- LocalPartySaveData) tss.Round { +func newRound1(params *tss.Parameters, save *LocalPartySaveData, temp *localTempData, out chan<- tss.Message, end chan<- *LocalPartySaveData) tss.Round { return &round1{ &base{params, save, temp, out, end, make([]bool, len(params.Parties().IDs())), false, 1}} } diff --git a/ecdsa/keygen/round_4.go b/ecdsa/keygen/round_4.go index 23abc2dc..17bfd949 100644 --- a/ecdsa/keygen/round_4.go +++ b/ecdsa/keygen/round_4.go @@ -73,7 +73,7 @@ func (round *round4) Start() *tss.Error { return round.WrapError(errors.New("paillier verify failed"), culprits...) } - round.end <- *round.save + round.end <- round.save return nil } diff --git a/ecdsa/keygen/rounds.go b/ecdsa/keygen/rounds.go index 48f82691..2d3e76fc 100644 --- a/ecdsa/keygen/rounds.go +++ b/ecdsa/keygen/rounds.go @@ -23,7 +23,7 @@ type ( save *LocalPartySaveData temp *localTempData out chan<- tss.Message - end chan<- LocalPartySaveData + end chan<- *LocalPartySaveData ok []bool // `ok` tracks parties which have been verified by Update() started bool number int diff --git a/ecdsa/resharing/local_party.go b/ecdsa/resharing/local_party.go index 00c403e6..85faf4c5 100644 --- a/ecdsa/resharing/local_party.go +++ b/ecdsa/resharing/local_party.go @@ -33,7 +33,7 @@ type ( // outbound messaging out chan<- tss.Message - end chan<- keygen.LocalPartySaveData + end chan<- *keygen.LocalPartySaveData } localMessageStore struct { @@ -72,7 +72,7 @@ func NewLocalParty( params *tss.ReSharingParameters, key keygen.LocalPartySaveData, out chan<- tss.Message, - end chan<- keygen.LocalPartySaveData, + end chan<- *keygen.LocalPartySaveData, ) tss.Party { oldPartyCount := len(params.OldParties().IDs()) subset := key diff --git a/ecdsa/resharing/local_party_test.go b/ecdsa/resharing/local_party_test.go index df2981ac..e205c5e1 100644 --- a/ecdsa/resharing/local_party_test.go +++ b/ecdsa/resharing/local_party_test.go @@ -66,7 +66,7 @@ func TestE2EConcurrent(t *testing.T) { errCh := make(chan *tss.Error, bothCommitteesPax) outCh := make(chan tss.Message, bothCommitteesPax) - endCh := make(chan keygen.LocalPartySaveData, bothCommitteesPax) + endCh := make(chan *keygen.LocalPartySaveData, bothCommitteesPax) updater := test.SharedPartyUpdater @@ -140,7 +140,7 @@ func TestE2EConcurrent(t *testing.T) { if save.Xi != nil { index, err := save.OriginalIndex() assert.NoErrorf(t, err, "should not be an error getting a party's index from save data") - newKeys[index] = save + newKeys[index] = *save } else { endedOldCommittee++ } diff --git a/ecdsa/resharing/round_1_old_step_1.go b/ecdsa/resharing/round_1_old_step_1.go index 8e1ce9c4..be8a2ec8 100644 --- a/ecdsa/resharing/round_1_old_step_1.go +++ b/ecdsa/resharing/round_1_old_step_1.go @@ -20,7 +20,7 @@ import ( ) // round 1 represents round 1 of the keygen part of the GG18 ECDSA TSS spec (Gennaro, Goldfeder; 2018) -func newRound1(params *tss.ReSharingParameters, input, save *keygen.LocalPartySaveData, temp *localTempData, out chan<- tss.Message, end chan<- keygen.LocalPartySaveData) tss.Round { +func newRound1(params *tss.ReSharingParameters, input, save *keygen.LocalPartySaveData, temp *localTempData, out chan<- tss.Message, end chan<- *keygen.LocalPartySaveData) tss.Round { return &round1{ &base{params, temp, input, save, out, end, make([]bool, len(params.OldParties().IDs())), make([]bool, len(params.NewParties().IDs())), false, 1}} } diff --git a/ecdsa/resharing/round_5_new_step_3.go b/ecdsa/resharing/round_5_new_step_3.go index 6c149c02..9f46ed20 100644 --- a/ecdsa/resharing/round_5_new_step_3.go +++ b/ecdsa/resharing/round_5_new_step_3.go @@ -69,7 +69,7 @@ func (round *round5) Start() *tss.Error { round.input.Xi.SetInt64(0) } - round.end <- *round.save + round.end <- round.save return nil } diff --git a/ecdsa/resharing/rounds.go b/ecdsa/resharing/rounds.go index d2c24e81..a76b1998 100644 --- a/ecdsa/resharing/rounds.go +++ b/ecdsa/resharing/rounds.go @@ -26,7 +26,7 @@ type ( temp *localTempData input, save *keygen.LocalPartySaveData out chan<- tss.Message - end chan<- keygen.LocalPartySaveData + end chan<- *keygen.LocalPartySaveData oldOK, // old committee "ok" tracker newOK []bool // `ok` tracks parties which have been verified by Update(); this one is for the new committee started bool diff --git a/ecdsa/signing/local_party_test.go b/ecdsa/signing/local_party_test.go index ffab5402..a1680b5f 100644 --- a/ecdsa/signing/local_party_test.go +++ b/ecdsa/signing/local_party_test.go @@ -14,7 +14,7 @@ import ( "sync/atomic" "testing" - "github.com/btcsuite/btcd/btcec" + "github.com/btcsuite/btcd/btcec/v2" "github.com/ipfs/go-log" "github.com/stretchr/testify/assert" diff --git a/eddsa/keygen/local_party.go b/eddsa/keygen/local_party.go index ebff0292..11601e0b 100644 --- a/eddsa/keygen/local_party.go +++ b/eddsa/keygen/local_party.go @@ -32,7 +32,7 @@ type ( // outbound messaging out chan<- tss.Message - end chan<- LocalPartySaveData + end chan<- *LocalPartySaveData } localMessageStore struct { @@ -61,7 +61,7 @@ type ( func NewLocalParty( params *tss.Parameters, out chan<- tss.Message, - end chan<- LocalPartySaveData, + end chan<- *LocalPartySaveData, ) tss.Party { partyCount := params.PartyCount() data := NewLocalPartySaveData(partyCount) diff --git a/eddsa/keygen/local_party_test.go b/eddsa/keygen/local_party_test.go index cad65cb3..119371f6 100644 --- a/eddsa/keygen/local_party_test.go +++ b/eddsa/keygen/local_party_test.go @@ -52,7 +52,7 @@ func TestE2EConcurrentAndSaveFixtures(t *testing.T) { errCh := make(chan *tss.Error, len(pIDs)) outCh := make(chan tss.Message, len(pIDs)) - endCh := make(chan LocalPartySaveData, len(pIDs)) + endCh := make(chan *LocalPartySaveData, len(pIDs)) updater := test.SharedPartyUpdater @@ -108,7 +108,7 @@ keygen: // .. here comes a workaround to recover this party's index (it was removed from save data) index, err := save.OriginalIndex() assert.NoErrorf(t, err, "should not be an error getting a party's index from save data") - tryWriteTestFixtureFile(t, index, save) + tryWriteTestFixtureFile(t, index, *save) atomic.AddInt32(&ended, 1) if atomic.LoadInt32(&ended) == int32(len(pIDs)) { diff --git a/eddsa/keygen/round_1.go b/eddsa/keygen/round_1.go index 90485ee6..9fc694e0 100644 --- a/eddsa/keygen/round_1.go +++ b/eddsa/keygen/round_1.go @@ -22,7 +22,7 @@ var ( ) // round 1 represents round 1 of the keygen part of the EDDSA TSS spec -func newRound1(params *tss.Parameters, save *LocalPartySaveData, temp *localTempData, out chan<- tss.Message, end chan<- LocalPartySaveData) tss.Round { +func newRound1(params *tss.Parameters, save *LocalPartySaveData, temp *localTempData, out chan<- tss.Message, end chan<- *LocalPartySaveData) tss.Round { return &round1{ &base{params, save, temp, out, end, make([]bool, len(params.Parties().IDs())), false, 1}} } diff --git a/eddsa/keygen/round_3.go b/eddsa/keygen/round_3.go index 2ffa27b3..4bbb15e7 100644 --- a/eddsa/keygen/round_3.go +++ b/eddsa/keygen/round_3.go @@ -196,7 +196,7 @@ func (round *round3) Start() *tss.Error { // PRINT public key & private share common.Logger.Debugf("%s public key: %x", round.PartyID(), eddsaPubKey) - round.end <- *round.save + round.end <- round.save return nil } diff --git a/eddsa/keygen/rounds.go b/eddsa/keygen/rounds.go index d361e5c3..cc880508 100644 --- a/eddsa/keygen/rounds.go +++ b/eddsa/keygen/rounds.go @@ -23,7 +23,7 @@ type ( save *LocalPartySaveData temp *localTempData out chan<- tss.Message - end chan<- LocalPartySaveData + end chan<- *LocalPartySaveData ok []bool // `ok` tracks parties which have been verified by Update() started bool number int diff --git a/eddsa/resharing/local_party.go b/eddsa/resharing/local_party.go index 45e74a8b..5e7aebf9 100644 --- a/eddsa/resharing/local_party.go +++ b/eddsa/resharing/local_party.go @@ -33,7 +33,7 @@ type ( // outbound messaging out chan<- tss.Message - end chan<- keygen.LocalPartySaveData + end chan<- *keygen.LocalPartySaveData } localMessageStore struct { @@ -67,7 +67,7 @@ func NewLocalParty( params *tss.ReSharingParameters, key keygen.LocalPartySaveData, out chan<- tss.Message, - end chan<- keygen.LocalPartySaveData, + end chan<- *keygen.LocalPartySaveData, ) tss.Party { oldPartyCount := len(params.OldParties().IDs()) subset := key diff --git a/eddsa/resharing/local_party_test.go b/eddsa/resharing/local_party_test.go index a07554dd..72411c0c 100644 --- a/eddsa/resharing/local_party_test.go +++ b/eddsa/resharing/local_party_test.go @@ -62,7 +62,7 @@ func TestE2EConcurrent(t *testing.T) { errCh := make(chan *tss.Error, bothCommitteesPax) outCh := make(chan tss.Message, bothCommitteesPax) - endCh := make(chan keygen.LocalPartySaveData, bothCommitteesPax) + endCh := make(chan *keygen.LocalPartySaveData, bothCommitteesPax) updater := test.SharedPartyUpdater @@ -129,7 +129,7 @@ func TestE2EConcurrent(t *testing.T) { if save.Xi != nil { index, err := save.OriginalIndex() assert.NoErrorf(t, err, "should not be an error getting a party's index from save data") - newKeys[index] = save + newKeys[index] = *save } else { endedOldCommittee++ } diff --git a/eddsa/resharing/round_1_old_step_1.go b/eddsa/resharing/round_1_old_step_1.go index bdb7eb72..9f997d58 100644 --- a/eddsa/resharing/round_1_old_step_1.go +++ b/eddsa/resharing/round_1_old_step_1.go @@ -19,7 +19,7 @@ import ( ) // round 1 represents round 1 of the keygen part of the EDDSA TSS spec -func newRound1(params *tss.ReSharingParameters, input, save *keygen.LocalPartySaveData, temp *localTempData, out chan<- tss.Message, end chan<- keygen.LocalPartySaveData) tss.Round { +func newRound1(params *tss.ReSharingParameters, input, save *keygen.LocalPartySaveData, temp *localTempData, out chan<- tss.Message, end chan<- *keygen.LocalPartySaveData) tss.Round { return &round1{ &base{params, temp, input, save, out, end, make([]bool, len(params.OldParties().IDs())), make([]bool, len(params.NewParties().IDs())), false, 1}} } diff --git a/eddsa/resharing/round_5_new_step_3.go b/eddsa/resharing/round_5_new_step_3.go index 6a4d5e75..3abc2f28 100644 --- a/eddsa/resharing/round_5_new_step_3.go +++ b/eddsa/resharing/round_5_new_step_3.go @@ -33,7 +33,7 @@ func (round *round5) Start() *tss.Error { round.input.Xi.SetInt64(0) } - round.end <- *round.save + round.end <- round.save return nil } diff --git a/eddsa/resharing/rounds.go b/eddsa/resharing/rounds.go index e9c79034..07d1f90e 100644 --- a/eddsa/resharing/rounds.go +++ b/eddsa/resharing/rounds.go @@ -21,7 +21,7 @@ type ( temp *localTempData input, save *keygen.LocalPartySaveData out chan<- tss.Message - end chan<- keygen.LocalPartySaveData + end chan<- *keygen.LocalPartySaveData oldOK, // old committee "ok" tracker newOK []bool // `ok` tracks parties which have been verified by Update(); this one is for the new committee started bool diff --git a/go.mod b/go.mod index 05953027..499f9466 100644 --- a/go.mod +++ b/go.mod @@ -3,22 +3,18 @@ module github.com/bnb-chain/tss-lib/v2 go 1.16 require ( - github.com/agl/ed25519 v0.0.0-20170116200512-5312a6153412 - github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8 - github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d - github.com/davecgh/go-spew v1.1.1 // indirect - github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0 - github.com/hashicorp/go-multierror v1.0.0 - github.com/ipfs/go-log v0.0.1 - github.com/mattn/go-colorable v0.1.2 // indirect - github.com/opentracing/opentracing-go v1.1.0 // indirect - github.com/otiai10/mint v1.2.4 // indirect - github.com/otiai10/primes v0.0.0-20180210170552-f6d2a1ba97c4 - github.com/pkg/errors v0.8.1 - github.com/stretchr/testify v1.3.0 - golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44 - golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7 // indirect - google.golang.org/protobuf v1.27.1 + github.com/agl/ed25519 v0.0.0-20200225211852-fd4d107ace12 + github.com/btcsuite/btcd v0.23.4 + github.com/btcsuite/btcd/btcec/v2 v2.3.2 + github.com/btcsuite/btcutil v1.0.2 + github.com/decred/dcrd/dcrec/edwards/v2 v2.0.3 + github.com/hashicorp/go-multierror v1.1.1 + github.com/ipfs/go-log v1.0.5 + github.com/otiai10/primes v0.0.0-20210501021515-f1b2be525a11 + github.com/pkg/errors v0.9.1 + github.com/stretchr/testify v1.8.4 + golang.org/x/crypto v0.13.0 + google.golang.org/protobuf v1.31.0 ) replace github.com/agl/ed25519 => github.com/binance-chain/edwards25519 v0.0.0-20200305024217-f36fc4b53d43 diff --git a/go.sum b/go.sum index ab3fee3c..1c7500cd 100644 --- a/go.sum +++ b/go.sum @@ -1,86 +1,237 @@ -bou.ke/monkey v1.0.1 h1:zEMLInw9xvNakzUUPjfS4Ds6jYPqCFx3m7bRmG5NH2U= -bou.ke/monkey v1.0.1/go.mod h1:FgHuK96Rv2Nlf+0u1OOVDpCMdsWyOFmeeketDHE7LIg= +github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/aead/siphash v1.0.1/go.mod h1:Nywa3cDsYNNK3gaciGTWPwHt0wlpNV15vwmswBAUSII= github.com/binance-chain/edwards25519 v0.0.0-20200305024217-f36fc4b53d43 h1:Vkf7rtHx8uHx8gDfkQaCdVfc+gfrF9v6sR6xJy7RXNg= github.com/binance-chain/edwards25519 v0.0.0-20200305024217-f36fc4b53d43/go.mod h1:TnVqVdGEK8b6erOMkcyYGWzCQMw7HEMCOw3BgFYCFWs= -github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8 h1:mOg8/RgDSHTQ1R0IR+LMDuW4TDShPv+JzYHuR4GLoNA= -github.com/btcsuite/btcd v0.0.0-20190629003639-c26ffa870fd8/go.mod h1:3J08xEfcugPacsc34/LKRU2yO7YmuT8yt28J8k2+rrI= +github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= +github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= +github.com/btcsuite/btcd v0.23.4 h1:IzV6qqkfwbItOS/sg/aDfPDsjPP8twrCOE2R93hxMlQ= +github.com/btcsuite/btcd v0.23.4/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= +github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA= +github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= +github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U= +github.com/btcsuite/btcd/btcec/v2 v2.3.2/go.mod h1:zYzJ8etWJQIv1Ogk7OzpWjowwOdXY1W/17j2MW85J04= +github.com/btcsuite/btcd/btcutil v1.0.0/go.mod h1:Uoxwv0pqYWhD//tfTiipkxNfdhG9UrLwaeswfjfdF0A= +github.com/btcsuite/btcd/btcutil v1.1.0/go.mod h1:5OapHB7A2hBBWLm48mmw4MOHNJCcUBTwmWH/0Jn8VHE= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.0/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1 h1:q0rUy8C/TYNBQS1+CGKw68tLOFYSNEs0TFnxxnS9+4U= +github.com/btcsuite/btcd/chaincfg/chainhash v1.0.1/go.mod h1:7SFka0XMvUgj3hfZtydOrQY2mwhPclbT2snogU7SQQc= github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA= -github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d h1:yJzD/yFppdVCf6ApMkVy8cUxV0XrxdP9rVf6D87/Mng= github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg= +github.com/btcsuite/btcutil v1.0.2 h1:9iZ1Terx9fMIOtq1VrwdqfsATL9MC2l8ZrUY6YZ2uts= +github.com/btcsuite/btcutil v1.0.2/go.mod h1:j9HUFwoQRsZL3V4n+qG+CUnEGHOarIxfC3Le2Yhbcts= github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg= github.com/btcsuite/goleveldb v0.0.0-20160330041536-7834afc9e8cd/go.mod h1:F+uVaaLLH7j4eDXPRvw78tMflu7Ie2bzYOH4Y8rRKBY= +github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I= github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= +github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc= github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0 h1:E5KszxGgpjpmW8vN811G6rBAZg0/S/DftdGqN4FW5x4= -github.com/decred/dcrd/dcrec/edwards/v2 v2.0.0/go.mod h1:d0H8xGMWbiIQP7gN3v2rByWUcuZPm9YsgmnfoxgbINc= +github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= +github.com/decred/dcrd/dcrec/edwards/v2 v2.0.3 h1:l/lhv2aJCUignzls81+wvga0TFlyoZx8QxRMQgXpZik= +github.com/decred/dcrd/dcrec/edwards/v2 v2.0.3/go.mod h1:AKpV6+wZ2MfPRJnTbQ6NPgWrKzbe9RCIlCF/FKzMtM8= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc= +github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= +github.com/decred/dcrd/lru v1.0.0/go.mod h1:mxKOwFd7lFjN2GZYsiz/ecgqR6kkYAl+0pz0tEMk218= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= -github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/hashicorp/errwrap v1.0.0 h1:hLrqtEDnRye3+sgx6z4qVLNuviH3MR5aQ0ykNJa/UYA= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-multierror v1.0.0 h1:iVjPR7a6H0tWELX5NxNe7bYopibicUzc7uPribsnS6o= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/ipfs/go-log v0.0.1 h1:9XTUN/rW64BCG1YhPK9Hoy3q8nr4gOmHHBpgFdfw6Lc= -github.com/ipfs/go-log v0.0.1/go.mod h1:kL1d2/hzSpI0thNYjiKfjanbVNU+IIGA/WnNESY9leM= +github.com/ipfs/go-log v1.0.5 h1:2dOuUCB1Z7uoczMWgAyDck5JLb72zHzrMnGnCNNbvY8= +github.com/ipfs/go-log v1.0.5/go.mod h1:j0b8ZoR+7+R99LD9jZ6+AJsrzkPbSXbZfGakb5JPtIo= +github.com/ipfs/go-log/v2 v2.1.3 h1:1iS3IU7aXRlbgUpN8yTTpJ53NXYjAe37vcI5+5nYrzk= +github.com/ipfs/go-log/v2 v2.1.3/go.mod h1:/8d0SH3Su5Ooc31QlL1WysJhvyOTDCjcCZ9Axpmri6g= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= +github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= github.com/jrick/logrotate v1.0.0/go.mod h1:LNinyqDIJnpAur+b8yyulnQw/wDuN1+BYKlTRt3OuAQ= -github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= -github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ= -github.com/mattn/go-colorable v0.1.2 h1:/bC9yWikZXAL9uJdulbSfyVNIR3n3trXl+v8+1sx8mU= -github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= -github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= -github.com/mattn/go-isatty v0.0.8 h1:HLtExJ+uU2HOZ+wI0Tt5DtUDrx8yhUqDcp7fYERX4CE= -github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= +github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= +github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/opentracing/opentracing-go v1.1.0 h1:pWlfV3Bxv7k65HYwkikxat0+s3pV4bsqf19k25Ur8rU= -github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/opentracing/opentracing-go v1.2.0 h1:uEJPy/1a5RIPAJ0Ov+OIO8OxWu77jEv+1B0VhjKrZUs= +github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= github.com/otiai10/curr v0.0.0-20150429015615-9b4961190c95/go.mod h1:9qAhocn7zKJG+0mI8eUu6xqkFDYS2kb2saOteoSB3cE= -github.com/otiai10/mint v1.2.4 h1:DxYL0itZyPaR5Z9HILdxSoHx+gNs6Yx+neOGS3IVUk0= -github.com/otiai10/mint v1.2.4/go.mod h1:d+b7n/0R3tdyUYYylALXpWQ/kTN+QobSq/4SRGBkR3M= -github.com/otiai10/primes v0.0.0-20180210170552-f6d2a1ba97c4 h1:blMAhTXF6uL1+e3eVSajjLT43Cc0U8mU1gcigbbolJM= -github.com/otiai10/primes v0.0.0-20180210170552-f6d2a1ba97c4/go.mod h1:UmSP7QeU3XmAdGu5+dnrTJqjBc+IscpVZkQzk473cjM= -github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= +github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6j4vs= +github.com/otiai10/jsonindent v0.0.0-20171116142732-447bf004320b/go.mod h1:SXIpH2WO0dyF5YBc6Iq8jc8TEJYe1Fk2Rc1EVYUdIgY= +github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= +github.com/otiai10/mint v1.3.2 h1:VYWnrP5fXmz1MXvjuUvcBrXSjGE6xjON+axB/UrpO3E= +github.com/otiai10/mint v1.3.2/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= +github.com/otiai10/primes v0.0.0-20210501021515-f1b2be525a11 h1:7x5D/2dkkr27Tgh4WFuX+iCS6OzuE5YJoqJzeqM+5mc= +github.com/otiai10/primes v0.0.0-20210501021515-f1b2be525a11/go.mod h1:1DmRMnU78i/OVkMnHzvhXSi4p8IhYUmtLJWhyOavJc0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc h1:9lDbC6Rz4bwmou+oE6Dt4Cb2BGMur5eR/GYptkKUVHo= -github.com/whyrusleeping/go-logging v0.0.0-20170515211332-0457bb6b88fc/go.mod h1:bopw91TMyo8J3tvftk8xmU2kPmlrt4nScJQZU2hE5EM= -golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44 h1:9lP3x0pW80sDI6t1UMSLA4to18W7R7imwAI/sWS9S8Q= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/syndtr/goleveldb v1.0.1-0.20210819022825-2ae1ddf74ef7/go.mod h1:q4W45IWZaF22tdD+VEXcAWRA037jwmWEB5VWYORlTpc= +github.com/urfave/cli v1.22.5/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= +go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= +go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= +go.uber.org/zap v1.16.0 h1:uFRZXykJGK9lLY4HtgSw44DnIcAM+kRBP7x5m+NpAOM= +go.uber.org/zap v1.16.0/go.mod h1:MA8QOfq0BHJwdXa996Y4dYkAqRKB8/1K1QMMZVaNZjQ= golang.org/x/crypto v0.0.0-20170930174604-9419663f5a44/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200115085410-6d4e4cb37c7d/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.8.0 h1:LUYupSeNrTNCGzR/hVBk2NHZO4hXcVaW1k4Qx7rjPx8= +golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190227160552-c95aed5357e7/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200813134508-3edf25e44fcc/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7 h1:LepdCS8Gf/MVejFIt8lsiexZATdoGVyp5bcyS+rYoUI= -golang.org/x/sys v0.0.0-20190712062909-fae7ac547cb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200814200057-3d37ad5750ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= -google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0 h1:clyUAQHOM3G0M3f5vQj7LuJrETvjVot3Z5el9nffUtU= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= diff --git a/tss/curve.go b/tss/curve.go index 02c91d7b..983a9361 100644 --- a/tss/curve.go +++ b/tss/curve.go @@ -11,7 +11,7 @@ import ( "errors" "reflect" - s256k1 "github.com/btcsuite/btcd/btcec" + s256k1 "github.com/btcsuite/btcd/btcec/v2" "github.com/decred/dcrd/dcrec/edwards/v2" ) From f3aad28ccbffde06ddbe917d4e22f5df9b8b34c8 Mon Sep 17 00:00:00 2001 From: Oleg Fomenko <35123037+olegfomenko@users.noreply.github.com> Date: Sun, 3 Dec 2023 13:24:02 +0200 Subject: [PATCH 49/50] fixed nil pointer on String() method (#276) --- tss/party.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tss/party.go b/tss/party.go index fd06fed3..210405b3 100644 --- a/tss/party.go +++ b/tss/party.go @@ -79,7 +79,11 @@ func (p *BaseParty) ValidateMessage(msg ParsedMessage) (bool, *Error) { } func (p *BaseParty) String() string { - return fmt.Sprintf("round: %d", p.round().RoundNumber()) + if rnd := p.round(); rnd != nil { + return fmt.Sprintf("round: %d",rnd.RoundNumber()) + } + + return "No more rounds" } // ----- From 409542ed86842cf691ccb5c5b679cc25abd7f975 Mon Sep 17 00:00:00 2001 From: ZhAnGeek <35120433+ZhAnGeek@users.noreply.github.com> Date: Sun, 3 Dec 2023 19:24:22 +0800 Subject: [PATCH 50/50] Fix: update always round.ok (#282) Co-authored-by: ZhAnGeek --- ecdsa/keygen/round_1.go | 6 ++++-- ecdsa/keygen/round_2.go | 9 ++++++--- ecdsa/keygen/round_3.go | 6 ++++-- ecdsa/resharing/round_1_old_step_1.go | 10 ++++++++-- ecdsa/resharing/round_2_new_step_1.go | 15 ++++++++++----- ecdsa/signing/round_2.go | 6 ++++-- ecdsa/signing/round_3.go | 6 ++++-- ecdsa/signing/round_4.go | 6 ++++-- ecdsa/signing/round_5.go | 6 ++++-- ecdsa/signing/round_6.go | 6 ++++-- ecdsa/signing/round_7.go | 6 ++++-- ecdsa/signing/round_8.go | 6 ++++-- ecdsa/signing/round_9.go | 6 ++++-- eddsa/keygen/round_1.go | 6 ++++-- eddsa/keygen/round_2.go | 9 ++++++--- eddsa/resharing/round_1_old_step_1.go | 10 ++++++++-- eddsa/resharing/round_2_new_step_1.go | 6 ++++-- eddsa/resharing/round_4_new_step_2.go | 6 ++++-- eddsa/signing/round_1.go | 6 ++++-- eddsa/signing/round_2.go | 6 ++++-- eddsa/signing/round_3.go | 6 ++++-- 21 files changed, 102 insertions(+), 47 deletions(-) diff --git a/ecdsa/keygen/round_1.go b/ecdsa/keygen/round_1.go index 4854e1c4..5e66f681 100644 --- a/ecdsa/keygen/round_1.go +++ b/ecdsa/keygen/round_1.go @@ -136,17 +136,19 @@ func (round *round1) CanAccept(msg tss.ParsedMessage) bool { } func (round *round1) Update() (bool, *tss.Error) { + ret := true for j, msg := range round.temp.kgRound1Messages { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } // vss check is in round 2 round.ok[j] = true } - return true, nil + return ret, nil } func (round *round1) NextRound() tss.Round { diff --git a/ecdsa/keygen/round_2.go b/ecdsa/keygen/round_2.go index 3eac8eba..52e6d4eb 100644 --- a/ecdsa/keygen/round_2.go +++ b/ecdsa/keygen/round_2.go @@ -165,20 +165,23 @@ func (round *round2) CanAccept(msg tss.ParsedMessage) bool { func (round *round2) Update() (bool, *tss.Error) { // guard - VERIFY de-commit for all Pj + ret := true for j, msg := range round.temp.kgRound2Message1s { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } msg2 := round.temp.kgRound2Message2s[j] if msg2 == nil || !round.CanAccept(msg2) { - return false, nil + ret = false + continue } round.ok[j] = true } - return true, nil + return ret, nil } func (round *round2) NextRound() tss.Round { diff --git a/ecdsa/keygen/round_3.go b/ecdsa/keygen/round_3.go index b704358a..c6871b7b 100644 --- a/ecdsa/keygen/round_3.go +++ b/ecdsa/keygen/round_3.go @@ -229,17 +229,19 @@ func (round *round3) CanAccept(msg tss.ParsedMessage) bool { } func (round *round3) Update() (bool, *tss.Error) { + ret := true for j, msg := range round.temp.kgRound3Messages { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } // proof check is in round 4 round.ok[j] = true } - return true, nil + return ret, nil } func (round *round3) NextRound() tss.Round { diff --git a/ecdsa/resharing/round_1_old_step_1.go b/ecdsa/resharing/round_1_old_step_1.go index be8a2ec8..c178b7ba 100644 --- a/ecdsa/resharing/round_1_old_step_1.go +++ b/ecdsa/resharing/round_1_old_step_1.go @@ -97,16 +97,22 @@ func (round *round1) Update() (bool, *tss.Error) { return true, nil } // accept messages from old -> new committee + ret := true for j, msg := range round.temp.dgRound1Messages { if round.oldOK[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.oldOK[j] = true // save the ecdsa pub received from the old committee + if round.temp.dgRound1Messages[0] == nil { + ret = false + continue + } r1msg := round.temp.dgRound1Messages[0].Content().(*DGRound1Message) candidate, err := r1msg.UnmarshalECDSAPub(round.Params().EC()) if err != nil { @@ -119,7 +125,7 @@ func (round *round1) Update() (bool, *tss.Error) { } round.save.ECDSAPub = candidate } - return true, nil + return ret, nil } func (round *round1) NextRound() tss.Round { diff --git a/ecdsa/resharing/round_2_new_step_1.go b/ecdsa/resharing/round_2_new_step_1.go index 8a47283a..3543e047 100644 --- a/ecdsa/resharing/round_2_new_step_1.go +++ b/ecdsa/resharing/round_2_new_step_1.go @@ -135,6 +135,7 @@ func (round *round2) CanAccept(msg tss.ParsedMessage) bool { } func (round *round2) Update() (bool, *tss.Error) { + ret := true if round.ReSharingParams().IsOldCommittee() && round.ReSharingParameters.IsNewCommittee() { // accept messages from new -> old committee for j, msg1 := range round.temp.dgRound2Message2s { @@ -142,12 +143,14 @@ func (round *round2) Update() (bool, *tss.Error) { continue } if msg1 == nil || !round.CanAccept(msg1) { - return false, nil + ret = false + continue } // accept message from new -> committee msg2 := round.temp.dgRound2Message1s[j] if msg2 == nil || !round.CanAccept(msg2) { - return false, nil + ret = false + continue } round.newOK[j] = true } @@ -158,7 +161,8 @@ func (round *round2) Update() (bool, *tss.Error) { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.newOK[j] = true } @@ -169,14 +173,15 @@ func (round *round2) Update() (bool, *tss.Error) { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.newOK[j] = true } } else { return false, round.WrapError(errors.New("this party is not in the old or the new committee"), round.PartyID()) } - return true, nil + return ret, nil } func (round *round2) NextRound() tss.Round { diff --git a/ecdsa/signing/round_2.go b/ecdsa/signing/round_2.go index 0568f3dd..9a23bf1e 100644 --- a/ecdsa/signing/round_2.go +++ b/ecdsa/signing/round_2.go @@ -120,16 +120,18 @@ func (round *round2) Start() *tss.Error { } func (round *round2) Update() (bool, *tss.Error) { + ret := true for j, msg := range round.temp.signRound2Messages { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.ok[j] = true } - return true, nil + return ret, nil } func (round *round2) CanAccept(msg tss.ParsedMessage) bool { diff --git a/ecdsa/signing/round_3.go b/ecdsa/signing/round_3.go index 38ae9b00..918648ef 100644 --- a/ecdsa/signing/round_3.go +++ b/ecdsa/signing/round_3.go @@ -125,16 +125,18 @@ func (round *round3) Start() *tss.Error { } func (round *round3) Update() (bool, *tss.Error) { + ret := true for j, msg := range round.temp.signRound3Messages { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.ok[j] = true } - return true, nil + return ret, nil } func (round *round3) CanAccept(msg tss.ParsedMessage) bool { diff --git a/ecdsa/signing/round_4.go b/ecdsa/signing/round_4.go index e7183690..7fc78993 100644 --- a/ecdsa/signing/round_4.go +++ b/ecdsa/signing/round_4.go @@ -56,16 +56,18 @@ func (round *round4) Start() *tss.Error { } func (round *round4) Update() (bool, *tss.Error) { + ret := true for j, msg := range round.temp.signRound4Messages { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.ok[j] = true } - return true, nil + return ret, nil } func (round *round4) CanAccept(msg tss.ParsedMessage) bool { diff --git a/ecdsa/signing/round_5.go b/ecdsa/signing/round_5.go index 3cbe19c5..f6ecf308 100644 --- a/ecdsa/signing/round_5.go +++ b/ecdsa/signing/round_5.go @@ -98,16 +98,18 @@ func (round *round5) Start() *tss.Error { } func (round *round5) Update() (bool, *tss.Error) { + ret := true for j, msg := range round.temp.signRound5Messages { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.ok[j] = true } - return true, nil + return ret, nil } func (round *round5) CanAccept(msg tss.ParsedMessage) bool { diff --git a/ecdsa/signing/round_6.go b/ecdsa/signing/round_6.go index 278d19be..0f8cdd03 100644 --- a/ecdsa/signing/round_6.go +++ b/ecdsa/signing/round_6.go @@ -42,16 +42,18 @@ func (round *round6) Start() *tss.Error { } func (round *round6) Update() (bool, *tss.Error) { + ret := true for j, msg := range round.temp.signRound6Messages { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.ok[j] = true } - return true, nil + return ret, nil } func (round *round6) CanAccept(msg tss.ParsedMessage) bool { diff --git a/ecdsa/signing/round_7.go b/ecdsa/signing/round_7.go index a50be65d..e89e0fcd 100644 --- a/ecdsa/signing/round_7.go +++ b/ecdsa/signing/round_7.go @@ -93,16 +93,18 @@ func (round *round7) Start() *tss.Error { } func (round *round7) Update() (bool, *tss.Error) { + ret := true for j, msg := range round.temp.signRound7Messages { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.ok[j] = true } - return true, nil + return ret, nil } func (round *round7) CanAccept(msg tss.ParsedMessage) bool { diff --git a/ecdsa/signing/round_8.go b/ecdsa/signing/round_8.go index f8b8e294..4e3f29cb 100644 --- a/ecdsa/signing/round_8.go +++ b/ecdsa/signing/round_8.go @@ -28,16 +28,18 @@ func (round *round8) Start() *tss.Error { } func (round *round8) Update() (bool, *tss.Error) { + ret := true for j, msg := range round.temp.signRound8Messages { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.ok[j] = true } - return true, nil + return ret, nil } func (round *round8) CanAccept(msg tss.ParsedMessage) bool { diff --git a/ecdsa/signing/round_9.go b/ecdsa/signing/round_9.go index 3f74c21b..a1c85d7f 100644 --- a/ecdsa/signing/round_9.go +++ b/ecdsa/signing/round_9.go @@ -51,16 +51,18 @@ func (round *round9) Start() *tss.Error { } func (round *round9) Update() (bool, *tss.Error) { + ret := true for j, msg := range round.temp.signRound9Messages { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.ok[j] = true } - return true, nil + return ret, nil } func (round *round9) CanAccept(msg tss.ParsedMessage) bool { diff --git a/eddsa/keygen/round_1.go b/eddsa/keygen/round_1.go index 9fc694e0..18ac2c58 100644 --- a/eddsa/keygen/round_1.go +++ b/eddsa/keygen/round_1.go @@ -96,17 +96,19 @@ func (round *round1) CanAccept(msg tss.ParsedMessage) bool { } func (round *round1) Update() (bool, *tss.Error) { + ret := true for j, msg := range round.temp.kgRound1Messages { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } // vss check is in round 2 round.ok[j] = true } - return true, nil + return ret, nil } func (round *round1) NextRound() tss.Round { diff --git a/eddsa/keygen/round_2.go b/eddsa/keygen/round_2.go index d1a603b4..1e0a4474 100644 --- a/eddsa/keygen/round_2.go +++ b/eddsa/keygen/round_2.go @@ -72,20 +72,23 @@ func (round *round2) CanAccept(msg tss.ParsedMessage) bool { func (round *round2) Update() (bool, *tss.Error) { // guard - VERIFY de-commit for all Pj + ret := true for j, msg := range round.temp.kgRound2Message1s { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } msg2 := round.temp.kgRound2Message2s[j] if msg2 == nil || !round.CanAccept(msg2) { - return false, nil + ret = false + continue } round.ok[j] = true } - return true, nil + return ret, nil } func (round *round2) NextRound() tss.Round { diff --git a/eddsa/resharing/round_1_old_step_1.go b/eddsa/resharing/round_1_old_step_1.go index 9f997d58..61bac309 100644 --- a/eddsa/resharing/round_1_old_step_1.go +++ b/eddsa/resharing/round_1_old_step_1.go @@ -90,15 +90,21 @@ func (round *round1) Update() (bool, *tss.Error) { return true, nil } // accept messages from old -> new committee + ret := true for j, msg := range round.temp.dgRound1Messages { if round.oldOK[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.oldOK[j] = true + if round.temp.dgRound1Messages[0] == nil { + ret = false + continue + } // save the eddsa pub received from the old committee r1msg := round.temp.dgRound1Messages[0].Content().(*DGRound1Message) candidate, err := r1msg.UnmarshalEDDSAPub(round.Params().EC()) @@ -112,7 +118,7 @@ func (round *round1) Update() (bool, *tss.Error) { } round.save.EDDSAPub = candidate } - return true, nil + return ret, nil } func (round *round1) NextRound() tss.Round { diff --git a/eddsa/resharing/round_2_new_step_1.go b/eddsa/resharing/round_2_new_step_1.go index 38270879..703d154a 100644 --- a/eddsa/resharing/round_2_new_step_1.go +++ b/eddsa/resharing/round_2_new_step_1.go @@ -50,18 +50,20 @@ func (round *round2) Update() (bool, *tss.Error) { return true, nil } + ret := true // accept messages from new -> old committee for j, msg := range round.temp.dgRound2Messages { if round.newOK[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.newOK[j] = true } - return true, nil + return ret, nil } func (round *round2) NextRound() tss.Round { diff --git a/eddsa/resharing/round_4_new_step_2.go b/eddsa/resharing/round_4_new_step_2.go index ab045e41..9911142f 100644 --- a/eddsa/resharing/round_4_new_step_2.go +++ b/eddsa/resharing/round_4_new_step_2.go @@ -141,16 +141,18 @@ func (round *round4) CanAccept(msg tss.ParsedMessage) bool { func (round *round4) Update() (bool, *tss.Error) { // accept messages from new -> old&new committees + ret := true for j, msg := range round.temp.dgRound4Messages { if round.newOK[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.newOK[j] = true } - return true, nil + return ret, nil } func (round *round4) NextRound() tss.Round { diff --git a/eddsa/signing/round_1.go b/eddsa/signing/round_1.go index 629d0b4d..21f6fa38 100644 --- a/eddsa/signing/round_1.go +++ b/eddsa/signing/round_1.go @@ -63,16 +63,18 @@ func (round *round1) Start() *tss.Error { } func (round *round1) Update() (bool, *tss.Error) { + ret := true for j, msg := range round.temp.signRound1Messages { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.ok[j] = true } - return true, nil + return ret, nil } func (round *round1) CanAccept(msg tss.ParsedMessage) bool { diff --git a/eddsa/signing/round_2.go b/eddsa/signing/round_2.go index 82f6c12a..1348a39a 100644 --- a/eddsa/signing/round_2.go +++ b/eddsa/signing/round_2.go @@ -55,16 +55,18 @@ func (round *round2) CanAccept(msg tss.ParsedMessage) bool { } func (round *round2) Update() (bool, *tss.Error) { + ret := true for j, msg := range round.temp.signRound2Messages { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.ok[j] = true } - return true, nil + return ret, nil } func (round *round2) NextRound() tss.Round { diff --git a/eddsa/signing/round_3.go b/eddsa/signing/round_3.go index 715c3a73..b2567f54 100644 --- a/eddsa/signing/round_3.go +++ b/eddsa/signing/round_3.go @@ -104,16 +104,18 @@ func (round *round3) Start() *tss.Error { } func (round *round3) Update() (bool, *tss.Error) { + ret := true for j, msg := range round.temp.signRound3Messages { if round.ok[j] { continue } if msg == nil || !round.CanAccept(msg) { - return false, nil + ret = false + continue } round.ok[j] = true } - return true, nil + return ret, nil } func (round *round3) CanAccept(msg tss.ParsedMessage) bool {