Skip to content

Commit

Permalink
Deploy P256 verifier in setup of P256 and WebAuthn tests (#34)
Browse files Browse the repository at this point in the history
* Deploy P256 verifier in setup of P256 and WebAuthn tests.

* Run without fork-url in CI

* Update lcov
  • Loading branch information
doublespending authored Dec 8, 2023
1 parent fcaa173 commit 29475ae
Show file tree
Hide file tree
Showing 4 changed files with 146 additions and 137 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ jobs:
id: build
- run: |
forge test -vv --fork-url "https://base-goerli.publicnode.com"
forge coverage --ir-minimum --report lcov --fork-url "https://base-goerli.publicnode.com"
forge test -vv
forge coverage --ir-minimum --report lcov
git diff --exit-code
id: test
Expand Down
270 changes: 135 additions & 135 deletions lcov.info
Original file line number Diff line number Diff line change
Expand Up @@ -25,165 +25,165 @@ end_of_record
TN:
SF:src/P256Verifier.sol
FN:26,P256Verifier.
FNDA:2567,P256Verifier.
DA:27,2567
BRDA:27,0,0,2566
FNDA:2573,P256Verifier.
DA:27,2573
BRDA:27,0,0,2572
BRDA:27,0,1,1
DA:28,1
DA:31,2566
DA:32,2566
DA:33,2566
DA:34,2566
DA:35,2566
DA:37,2566
DA:39,2566
DA:31,2572
DA:32,2572
DA:33,2572
DA:34,2572
DA:35,2572
DA:37,2572
DA:39,2572
FN:70,P256Verifier.ecdsa_verify
FNDA:2566,P256Verifier.ecdsa_verify
DA:77,2566
BRDA:77,1,0,2269
FNDA:2572,P256Verifier.ecdsa_verify
DA:77,2572
BRDA:77,1,0,2275
BRDA:77,1,1,297
DA:78,297
DA:81,2269
BRDA:81,2,0,2262
DA:81,2275
BRDA:81,2,0,2268
BRDA:81,2,1,7
DA:82,7
DA:85,2262
DA:87,2262
DA:88,2262
DA:90,2262
DA:96,2262
DA:85,2268
DA:87,2268
DA:88,2268
DA:90,2268
DA:96,2268
FN:103,P256Verifier.ecAff_isValidPubkey
FNDA:2269,P256Verifier.ecAff_isValidPubkey
DA:107,2269
BRDA:107,3,0,2267
FNDA:2275,P256Verifier.ecAff_isValidPubkey
DA:107,2275
BRDA:107,3,0,2273
BRDA:107,3,1,1
DA:108,2
DA:111,2267
DA:111,2273
FN:114,P256Verifier.ecAff_satisfiesCurveEqn
FNDA:2267,P256Verifier.ecAff_satisfiesCurveEqn
DA:118,2267
DA:119,2267
DA:120,2267
DA:122,2267
FNDA:2273,P256Verifier.ecAff_satisfiesCurveEqn
DA:118,2273
DA:119,2273
DA:120,2273
DA:122,2273
FN:130,P256Verifier.ecZZ_mulmuladd
FNDA:2262,P256Verifier.ecZZ_mulmuladd
DA:136,2262
DA:137,2262
DA:138,2262
DA:139,2262
DA:140,2262
DA:142,2262
BRDA:142,4,0,2262
FNDA:2268,P256Verifier.ecZZ_mulmuladd
DA:136,2268
DA:137,2268
DA:138,2268
DA:139,2268
DA:140,2268
DA:142,2268
BRDA:142,4,0,2268
BRDA:142,4,1,-
DA:145,2262
DA:147,2262
DA:148,2262
DA:151,3070
DA:152,3070
DA:153,3070
DA:154,3070
BRDA:154,5,0,808
BRDA:154,5,1,2262
DA:160,2262
DA:145,2268
DA:147,2268
DA:148,2268
DA:151,3080
DA:152,3080
DA:153,3080
DA:154,3080
BRDA:154,5,0,812
BRDA:154,5,1,2268
DA:160,2268
BRDA:160,6,0,836
BRDA:160,6,1,1426
BRDA:160,6,1,1432
DA:161,836
DA:162,1426
DA:162,1432
BRDA:162,7,0,709
BRDA:162,7,1,717
BRDA:162,7,1,723
DA:163,709
DA:164,717
BRDA:164,8,0,717
BRDA:164,8,1,717
DA:165,717
DA:168,2262
DA:169,2262
DA:170,578264
DA:171,576002
DA:173,576002
DA:174,576002
DA:176,576002
BRDA:176,9,0,147385
BRDA:176,9,1,428617
DA:177,147385
DA:178,428617
BRDA:178,10,0,146507
BRDA:178,10,1,282110
DA:179,146507
DA:180,282110
BRDA:180,11,0,139559
BRDA:180,11,1,142551
DA:181,139559
DA:183,142551
DA:186,428617
DA:189,2262
DA:190,2262
DA:164,723
BRDA:164,8,0,723
BRDA:164,8,1,723
DA:165,723
DA:168,2268
DA:169,2268
DA:170,579796
DA:171,577528
DA:173,577528
DA:174,577528
DA:176,577528
BRDA:176,9,0,147784
BRDA:176,9,1,429744
DA:177,147784
DA:178,429744
BRDA:178,10,0,146865
BRDA:178,10,1,282879
DA:179,146865
DA:180,282879
BRDA:180,11,0,139945
BRDA:180,11,1,142934
DA:181,139945
DA:183,142934
DA:186,429744
DA:189,2268
DA:190,2268
FN:203,P256Verifier.compute_bitpair
FNDA:579072,P256Verifier.compute_bitpair
DA:204,579072
FNDA:580608,P256Verifier.compute_bitpair
DA:204,580608
FN:211,P256Verifier.ecAff_add
FNDA:2262,P256Verifier.ecAff_add
DA:220,2262
DA:221,2262
DA:223,2262
BRDA:223,12,0,2262
FNDA:2268,P256Verifier.ecAff_add
DA:220,2268
DA:221,2268
DA:223,2268
BRDA:223,12,0,2268
BRDA:223,12,1,-
DA:224,2262
BRDA:224,13,0,2262
DA:224,2268
BRDA:224,13,0,2268
BRDA:224,13,1,-
DA:226,2262
DA:228,2262
DA:226,2268
DA:228,2268
FN:235,P256Verifier.ecAff_IsInf
FNDA:435423,P256Verifier.ecAff_IsInf
DA:241,435423
FNDA:436568,P256Verifier.ecAff_IsInf
DA:241,436568
FN:248,P256Verifier.ecZZ_IsInf
FNDA:1009143,P256Verifier.ecZZ_IsInf
DA:255,1009143
FNDA:1011808,P256Verifier.ecZZ_IsInf
DA:255,1011808
FN:265,P256Verifier.ecZZ_dadd_affine
FNDA:430879,P256Verifier.ecZZ_dadd_affine
DA:273,430879
FNDA:432012,P256Verifier.ecZZ_dadd_affine
DA:273,432012
BRDA:273,14,0,272
BRDA:273,14,1,1020
DA:274,1292
BRDA:274,15,0,272
BRDA:274,15,1,1020
DA:275,272
DA:276,429587
BRDA:276,16,0,429579
DA:276,430720
BRDA:276,16,0,430712
BRDA:276,16,1,8
DA:277,8
DA:280,429579
DA:281,429579
DA:283,429579
BRDA:283,17,0,429503
DA:280,430712
DA:281,430712
DA:283,430712
BRDA:283,17,0,430636
BRDA:283,17,1,-
DA:285,429503
DA:286,429503
DA:287,429503
DA:288,429503
DA:289,429503
DA:290,429503
DA:295,429503
DA:285,430636
DA:286,430636
DA:287,430636
DA:288,430636
DA:289,430636
DA:290,430636
DA:295,430636
DA:300,76
BRDA:300,18,0,20
BRDA:300,18,1,56
DA:304,20
DA:307,56
DA:310,429579
DA:310,430712
FN:318,P256Verifier.ecZZ_double_zz
FNDA:576002,P256Verifier.ecZZ_double_zz
DA:320,576002
BRDA:320,19,0,573914
FNDA:577528,P256Verifier.ecZZ_double_zz
DA:320,577528
BRDA:320,19,0,575440
BRDA:320,19,1,2088
DA:322,573914
DA:323,573914
DA:324,573914
DA:325,573914
DA:326,573914
DA:328,573914
DA:329,573914
DA:330,573914
DA:331,573914
DA:322,575440
DA:323,575440
DA:324,575440
DA:325,575440
DA:326,575440
DA:328,575440
DA:329,575440
DA:330,575440
DA:331,575440
FN:339,P256Verifier.ecZZ_double_affine
FNDA:20,P256Verifier.ecZZ_double_affine
DA:341,20
Expand All @@ -197,36 +197,36 @@ DA:347,20
DA:349,20
DA:350,20
FN:358,P256Verifier.ecZZ_SetAff
FNDA:2262,P256Verifier.ecZZ_SetAff
DA:364,2262
BRDA:364,21,0,2246
FNDA:2268,P256Verifier.ecZZ_SetAff
DA:364,2268
BRDA:364,21,0,2252
BRDA:364,21,1,16
DA:365,16
DA:366,16
DA:369,2246
DA:370,2246
DA:371,2246
DA:376,2246
DA:377,2246
DA:369,2252
DA:370,2252
DA:371,2252
DA:376,2252
DA:377,2252
FN:383,P256Verifier.ecZZ_PointAtInf
FNDA:3164,P256Verifier.ecZZ_PointAtInf
DA:384,3164
FN:390,P256Verifier.ecAffine_PointAtInf
FNDA:16,P256Verifier.ecAffine_PointAtInf
DA:391,16
FN:397,P256Verifier.nModInv
FNDA:2262,P256Verifier.nModInv
DA:398,2262
FNDA:2268,P256Verifier.nModInv
DA:398,2268
FN:404,P256Verifier.pModInv
FNDA:4508,P256Verifier.pModInv
DA:405,4508
FNDA:4520,P256Verifier.pModInv
DA:405,4520
FN:414,P256Verifier.modInv
FNDA:6770,P256Verifier.modInv
DA:421,6770
DA:422,6770
FNDA:6788,P256Verifier.modInv
DA:421,6788
DA:422,6788
BRDA:422,22,0,-
BRDA:422,22,1,-
DA:423,6770
DA:423,6788
FNF:18
FNH:18
LF:121
Expand Down
2 changes: 2 additions & 0 deletions test/P256.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ contract P256Test is Test {
uint256[2] public pubKey;

function setUp() public {
// Deploy P256 Verifier
vm.etch(P256.VERIFIER, type(P256Verifier).runtimeCode);
pubKey = [
0x65a2fa44daad46eab0278703edb6c4dcf5e30b8a9aec09fdc71a56f52aa392e4,
0x4a7a9e4604aa36898209997288e902ac544a555e4b5e0a9efef2b59233f3f437
Expand Down
7 changes: 7 additions & 0 deletions test/WebAuthn.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ pragma solidity 0.8.21;
import {Test, console2} from "forge-std/Test.sol";
import {stdJson} from "forge-std/StdJson.sol";
import {WebAuthn} from "../src/WebAuthn.sol";
import {P256} from "../src/P256.sol";
import {P256Verifier} from "../src/P256Verifier.sol";

contract WebAuthnTest is Test {
uint256[2] publicKey = [
Expand All @@ -22,6 +24,11 @@ contract WebAuthnTest is Test {
uint256 challengeLocation = 23;
uint256 responseTypeLocation = 1;

function setUp() public {
// Deploy P256 Verifier
vm.etch(P256.VERIFIER, type(P256Verifier).runtimeCode);
}

// Simple manual valid signature test
function testHandParsed() public {
bool ret = WebAuthn.verifySignature({
Expand Down

0 comments on commit 29475ae

Please sign in to comment.