From e7da5317ea178063322e87be62b745e50e180c5d Mon Sep 17 00:00:00 2001 From: rdubois-crypto Date: Fri, 15 Dec 2023 13:08:42 +0100 Subject: [PATCH] linter linter using the command make lint-write --- .../script/DeployElliptic.s.sol | 4 +- .../test/FCL_ecmulmul_edge.t.sol | 82 ++++++++----------- 2 files changed, 38 insertions(+), 48 deletions(-) diff --git a/solidity/tests/WebAuthn_forge/script/DeployElliptic.s.sol b/solidity/tests/WebAuthn_forge/script/DeployElliptic.s.sol index 59f98b3d..3f6a1f12 100644 --- a/solidity/tests/WebAuthn_forge/script/DeployElliptic.s.sol +++ b/solidity/tests/WebAuthn_forge/script/DeployElliptic.s.sol @@ -86,14 +86,14 @@ contract FCL_all_wrapper { contract MyScript is BaseScript { function run() external broadcast returns (address addressOfLibrary) { // deploy the library contract and return the address - addressOfLibrary = address(new FCL_ecdsa_wrapper{salt:0}()); + addressOfLibrary = address(new FCL_ecdsa_wrapper{salt: 0}()); } } contract Script_Deploy_FCL_all is BaseScript { function run() external broadcast returns (address addressOfLibrary) { // deploy the library contract and return the address - addressOfLibrary = address(new FCL_all_wrapper{salt:0}()); + addressOfLibrary = address(new FCL_all_wrapper{salt: 0}()); } } diff --git a/solidity/tests/WebAuthn_forge/test/FCL_ecmulmul_edge.t.sol b/solidity/tests/WebAuthn_forge/test/FCL_ecmulmul_edge.t.sol index c5bb48ee..e6eb3554 100644 --- a/solidity/tests/WebAuthn_forge/test/FCL_ecmulmul_edge.t.sol +++ b/solidity/tests/WebAuthn_forge/test/FCL_ecmulmul_edge.t.sol @@ -24,50 +24,40 @@ import "@solidity/FCL_ecdsa.sol"; //testing edge case as suggested by Mikhail in commit 5d3c3f77f0d296f095bb071e7df5278a1c0cc1be contract edgemultTest is Test { - /* vector from http://point-at-infinity.org/ecc/nisttv -//k = 115792089210356248762697446949407573529996955224135760342422259061068512044367 -//x = 7CF27B188D034F7E8A52380304B51AC3C08969E277F21B35A60B48FC47669978 -//y = F888AAEE24712FC0D6C26539608BCF244582521AC3167DD661FB4862DD878C2E*/ -//edge case for Shamir -function test_edgeMul() public returns (bool) -{ - uint256[3] memory vec=[ - 115792089210356248762697446949407573529996955224135760342422259061068512044367, - 0x7CF27B188D034F7E8A52380304B51AC3C08969E277F21B35A60B48FC47669978, - 0xF888AAEE24712FC0D6C26539608BCF244582521AC3167DD661FB4862DD878C2E - ]; - uint256 resX; - uint256 resY; - uint256[4] memory Q=[uint256(0),0,0,0]; - - //(resX, resY)=ec_scalarmulN(vec[0], vec[1], vec[2]); - resX=FCL_Elliptic_ZZ.ecZZ_mulmuladd_S_asm(Q[0], Q[1], vec[0], 0); - assertEq(0x7CF27B188D034F7E8A52380304B51AC3C08969E277F21B35A60B48FC47669978, resX); - - //edge case from niordell - uint256[4] memory vec2=[ -102369864249653057322725350723741461599905180004905897298779971437827381725266,//x - 14047598098721058250371778545974983789701612908526165355421494088134814672697,//y - 94632330233094393099906091027057584450760066982961548963789323460936666616340,//u - 23658082558273598274976522756764396112690016745740387240947330865234166656879];//v - - //expected result using FCL_elliptic.sage, dark side: - //_G_POINT*94632330233094393099906091027057584450760066982961548963789323460936666616340+_G_CURVE(102369864249653057322725350723741461599905180004905897298779971437827381725266, 14047598098721058250371778545974983789701612908526165355421494088134814672697)*23658082558273598274976522756764396112690016745740387240947330865234166656879 -//(93995665850302450053183256960521438033484268364047930968443817833761593125805 : 60765861213361593633751918097312828188566711467069305801019119884414110226811 : 1) - - - resX=FCL_Elliptic_ZZ.ecZZ_mulmuladd_S_asm(vec2[0], vec2[1], vec2[2], vec2[3]); - console.log("resX=%x",resX); - - assertEq(93995665850302450053183256960521438033484268364047930968443817833761593125805, resX); - - - -} - - - - - - + /* vector from http://point-at-infinity.org/ecc/nisttv + //k = 115792089210356248762697446949407573529996955224135760342422259061068512044367 + //x = 7CF27B188D034F7E8A52380304B51AC3C08969E277F21B35A60B48FC47669978 + //y = F888AAEE24712FC0D6C26539608BCF244582521AC3167DD661FB4862DD878C2E*/ + //edge case for Shamir + function test_edgeMul() public returns (bool) { + uint256[3] memory vec = [ + 115792089210356248762697446949407573529996955224135760342422259061068512044367, + 0x7CF27B188D034F7E8A52380304B51AC3C08969E277F21B35A60B48FC47669978, + 0xF888AAEE24712FC0D6C26539608BCF244582521AC3167DD661FB4862DD878C2E + ]; + uint256 resX; + uint256 resY; + uint256[4] memory Q = [uint256(0), 0, 0, 0]; + + //(resX, resY)=ec_scalarmulN(vec[0], vec[1], vec[2]); + resX = FCL_Elliptic_ZZ.ecZZ_mulmuladd_S_asm(Q[0], Q[1], vec[0], 0); + assertEq(0x7CF27B188D034F7E8A52380304B51AC3C08969E277F21B35A60B48FC47669978, resX); + + //edge case from niordell + uint256[4] memory vec2 = [ + 102369864249653057322725350723741461599905180004905897298779971437827381725266, //x + 14047598098721058250371778545974983789701612908526165355421494088134814672697, //y + 94632330233094393099906091027057584450760066982961548963789323460936666616340, //u + 23658082558273598274976522756764396112690016745740387240947330865234166656879 + ]; //v + + //expected result using FCL_elliptic.sage, dark side: + //_G_POINT*94632330233094393099906091027057584450760066982961548963789323460936666616340+_G_CURVE(102369864249653057322725350723741461599905180004905897298779971437827381725266, 14047598098721058250371778545974983789701612908526165355421494088134814672697)*23658082558273598274976522756764396112690016745740387240947330865234166656879 + //(93995665850302450053183256960521438033484268364047930968443817833761593125805 : 60765861213361593633751918097312828188566711467069305801019119884414110226811 : 1) + + resX = FCL_Elliptic_ZZ.ecZZ_mulmuladd_S_asm(vec2[0], vec2[1], vec2[2], vec2[3]); + console.log("resX=%x", resX); + + assertEq(93995665850302450053183256960521438033484268364047930968443817833761593125805, resX); + } }