Skip to content

Commit

Permalink
fixing email address regex
Browse files Browse the repository at this point in the history
  • Loading branch information
SoraSuegami committed Aug 26, 2024
1 parent 4cbc5c5 commit a36df33
Show file tree
Hide file tree
Showing 17 changed files with 2,338 additions and 2,337 deletions.
4 changes: 2 additions & 2 deletions packages/circom/circuits/common/email_addr.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"parts": [
{
"is_public": true,
"regex_def": "[A-Za-z0-9!#$%&'*+=?\\^_`{|}~.]+@[A-Za-z0-9.-]+"
"regex_def": "[A-Za-z0-9!#$%&'*+=?\\-\\^_`{|}~.]+@[A-Za-z0-9.\\-]+"
}
]
}
}
69 changes: 35 additions & 34 deletions packages/circom/circuits/common/email_addr_regex.circom
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ pragma circom 2.1.5;

include "@zk-email/zk-regex-circom/circuits/regex_helpers.circom";

// regex: [A-Za-z0-9!#$%&'*+=?\^_`{|}~.]+@[A-Za-z0-9.-]+
// regex: [A-Za-z0-9!#$%&'*+=?\-\^_`{|}~.]+@[A-Za-z0-9.\-]+
template EmailAddrRegex(msg_bytes) {
signal input msg[msg_bytes];
signal output out;
Expand Down Expand Up @@ -75,46 +75,49 @@ template EmailAddrRegex(msg_bytes) {
eq[7][i].in[1] <== 43;
eq[8][i] = IsEqual();
eq[8][i].in[0] <== in[i];
eq[8][i].in[1] <== 46;
eq[8][i].in[1] <== 45;
eq[9][i] = IsEqual();
eq[9][i].in[0] <== in[i];
eq[9][i].in[1] <== 48;
eq[9][i].in[1] <== 46;
eq[10][i] = IsEqual();
eq[10][i].in[0] <== in[i];
eq[10][i].in[1] <== 49;
eq[10][i].in[1] <== 48;
eq[11][i] = IsEqual();
eq[11][i].in[0] <== in[i];
eq[11][i].in[1] <== 50;
eq[11][i].in[1] <== 49;
eq[12][i] = IsEqual();
eq[12][i].in[0] <== in[i];
eq[12][i].in[1] <== 51;
eq[12][i].in[1] <== 50;
eq[13][i] = IsEqual();
eq[13][i].in[0] <== in[i];
eq[13][i].in[1] <== 52;
eq[13][i].in[1] <== 51;
eq[14][i] = IsEqual();
eq[14][i].in[0] <== in[i];
eq[14][i].in[1] <== 53;
eq[14][i].in[1] <== 52;
eq[15][i] = IsEqual();
eq[15][i].in[0] <== in[i];
eq[15][i].in[1] <== 54;
eq[15][i].in[1] <== 53;
eq[16][i] = IsEqual();
eq[16][i].in[0] <== in[i];
eq[16][i].in[1] <== 55;
eq[16][i].in[1] <== 54;
eq[17][i] = IsEqual();
eq[17][i].in[0] <== in[i];
eq[17][i].in[1] <== 56;
eq[17][i].in[1] <== 55;
eq[18][i] = IsEqual();
eq[18][i].in[0] <== in[i];
eq[18][i].in[1] <== 57;
eq[18][i].in[1] <== 56;
eq[19][i] = IsEqual();
eq[19][i].in[0] <== in[i];
eq[19][i].in[1] <== 61;
eq[19][i].in[1] <== 57;
eq[20][i] = IsEqual();
eq[20][i].in[0] <== in[i];
eq[20][i].in[1] <== 63;
eq[20][i].in[1] <== 61;
eq[21][i] = IsEqual();
eq[21][i].in[0] <== in[i];
eq[21][i].in[1] <== 63;
and[2][i] = AND();
and[2][i].a <== states[i][0];
multi_or[0][i] = MultiOR(23);
multi_or[0][i] = MultiOR(24);
multi_or[0][i].in[0] <== and[0][i].out;
multi_or[0][i].in[1] <== and[1][i].out;
multi_or[0][i].in[2] <== eq[0][i].out;
Expand All @@ -138,17 +141,18 @@ template EmailAddrRegex(msg_bytes) {
multi_or[0][i].in[20] <== eq[18][i].out;
multi_or[0][i].in[21] <== eq[19][i].out;
multi_or[0][i].in[22] <== eq[20][i].out;
multi_or[0][i].in[23] <== eq[21][i].out;
and[2][i].b <== multi_or[0][i].out;
and[3][i] = AND();
and[3][i].a <== states[i][1];
and[3][i].b <== multi_or[0][i].out;
states_tmp[i+1][1] <== and[3][i].out;
eq[21][i] = IsEqual();
eq[21][i].in[0] <== in[i];
eq[21][i].in[1] <== 64;
eq[22][i] = IsEqual();
eq[22][i].in[0] <== in[i];
eq[22][i].in[1] <== 64;
and[4][i] = AND();
and[4][i].a <== states[i][1];
and[4][i].b <== eq[21][i].out;
and[4][i].b <== eq[22][i].out;
states[i+1][2] <== and[4][i].out;
lt[4][i] = LessEqThan(8);
lt[4][i].in[0] <== 97;
Expand All @@ -159,26 +163,23 @@ template EmailAddrRegex(msg_bytes) {
and[5][i] = AND();
and[5][i].a <== lt[4][i].out;
and[5][i].b <== lt[5][i].out;
eq[22][i] = IsEqual();
eq[22][i].in[0] <== in[i];
eq[22][i].in[1] <== 45;
and[6][i] = AND();
and[6][i].a <== states[i][2];
multi_or[1][i] = MultiOR(14);
multi_or[1][i].in[0] <== and[0][i].out;
multi_or[1][i].in[1] <== and[5][i].out;
multi_or[1][i].in[2] <== eq[22][i].out;
multi_or[1][i].in[3] <== eq[8][i].out;
multi_or[1][i].in[4] <== eq[9][i].out;
multi_or[1][i].in[5] <== eq[10][i].out;
multi_or[1][i].in[6] <== eq[11][i].out;
multi_or[1][i].in[7] <== eq[12][i].out;
multi_or[1][i].in[8] <== eq[13][i].out;
multi_or[1][i].in[9] <== eq[14][i].out;
multi_or[1][i].in[10] <== eq[15][i].out;
multi_or[1][i].in[11] <== eq[16][i].out;
multi_or[1][i].in[12] <== eq[17][i].out;
multi_or[1][i].in[13] <== eq[18][i].out;
multi_or[1][i].in[2] <== eq[8][i].out;
multi_or[1][i].in[3] <== eq[9][i].out;
multi_or[1][i].in[4] <== eq[10][i].out;
multi_or[1][i].in[5] <== eq[11][i].out;
multi_or[1][i].in[6] <== eq[12][i].out;
multi_or[1][i].in[7] <== eq[13][i].out;
multi_or[1][i].in[8] <== eq[14][i].out;
multi_or[1][i].in[9] <== eq[15][i].out;
multi_or[1][i].in[10] <== eq[16][i].out;
multi_or[1][i].in[11] <== eq[17][i].out;
multi_or[1][i].in[12] <== eq[18][i].out;
multi_or[1][i].in[13] <== eq[19][i].out;
and[6][i].b <== multi_or[1][i].out;
and[7][i] = AND();
and[7][i].a <== states[i][3];
Expand Down
2 changes: 1 addition & 1 deletion packages/circom/circuits/common/email_addr_with_name.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
},
{
"is_public": true,
"regex_def": "[a-zA-Z0-9!#$%&'*+-/=?^_`{\\|}~\\.]+@[a-zA-Z0-9_\\.-]+"
"regex_def": "[A-Za-z0-9!#$%&'*+=?\\-\\^_`{|}~.]+@[a-zA-Z0-9_.\\-]+"
},
{
"is_public": false,
Expand Down
Loading

0 comments on commit a36df33

Please sign in to comment.