From dcf73c5d1e4279b14927120a26e759cecfce1055 Mon Sep 17 00:00:00 2001 From: SoraSuegami Date: Tue, 24 Dec 2024 11:28:21 +0900 Subject: [PATCH] Outlook worked --- .../src/email_auth_legacy_template.circom | 10 +- .../circuits/src/email_auth_template.circom | 12 +- .../tests/email_auth_production.test.ts | 130 +++++------ .../tests/emails/recovery_outlook_pc.eml | 205 ++++++++++++++++++ yarn.lock | 79 +++---- 5 files changed, 325 insertions(+), 111 deletions(-) create mode 100644 packages/circuits/tests/emails/recovery_outlook_pc.eml diff --git a/packages/circuits/src/email_auth_legacy_template.circom b/packages/circuits/src/email_auth_legacy_template.circom index be7fa0c4..146522e7 100644 --- a/packages/circuits/src/email_auth_legacy_template.circom +++ b/packages/circuits/src/email_auth_legacy_template.circom @@ -112,8 +112,16 @@ template EmailAuthLegacy(n, k, max_header_bytes, max_subject_bytes, recipient_en (timestamp_regex_out, timestamp_regex_reveal) <== TimestampRegex(max_header_bytes)(padded_header); signal is_valid_timestamp_idx <== LessThan(log2Ceil(max_header_bytes))([timestamp_idx, max_header_bytes]); is_valid_timestamp_idx === 1; + signal replaced_timestamp_regex_reveal[max_header_bytes]; + for(var i=0; i=0 && i < timestamp_len) { + replaced_timestamp_regex_reveal[i] <== (timestamp_regex_reveal[i] - 1) * timestamp_regex_out + 48; + } else { + replaced_timestamp_regex_reveal[i] <== timestamp_regex_reveal[i] * timestamp_regex_out; + } + } signal timestamp_str[timestamp_len]; - timestamp_str <== SelectRegexReveal(max_header_bytes, timestamp_len)(timestamp_regex_reveal, timestamp_idx); + timestamp_str <== SelectRegexReveal(max_header_bytes, timestamp_len)(replaced_timestamp_regex_reveal, timestamp_idx); signal raw_timestamp <== Digit2Int(timestamp_len)(timestamp_str); timestamp <== timestamp_regex_out * raw_timestamp; diff --git a/packages/circuits/src/email_auth_template.circom b/packages/circuits/src/email_auth_template.circom index 81f3f243..361d5c96 100644 --- a/packages/circuits/src/email_auth_template.circom +++ b/packages/circuits/src/email_auth_template.circom @@ -112,10 +112,18 @@ template EmailAuth(n, k, max_header_bytes, max_body_bytes, max_command_bytes, re // Timestamp regex + convert to decimal format signal timestamp_regex_out, timestamp_regex_reveal[max_header_bytes]; (timestamp_regex_out, timestamp_regex_reveal) <== TimestampRegex(max_header_bytes)(padded_header); - signal timestamp_str[timestamp_len]; signal is_valid_timestamp_idx <== LessThan(log2Ceil(max_header_bytes))([timestamp_idx, max_header_bytes]); is_valid_timestamp_idx === 1; - timestamp_str <== SelectRegexReveal(max_header_bytes, timestamp_len)(timestamp_regex_reveal, timestamp_idx); + signal replaced_timestamp_regex_reveal[max_header_bytes]; + for(var i=0; i=0 && i < timestamp_len) { + replaced_timestamp_regex_reveal[i] <== (timestamp_regex_reveal[i] - 1) * timestamp_regex_out + 48; + } else { + replaced_timestamp_regex_reveal[i] <== timestamp_regex_reveal[i] * timestamp_regex_out; + } + } + signal timestamp_str[timestamp_len]; + timestamp_str <== SelectRegexReveal(max_header_bytes, timestamp_len)(replaced_timestamp_regex_reveal, timestamp_idx); signal raw_timestamp <== Digit2Int(timestamp_len)(timestamp_str); timestamp <== timestamp_regex_out * raw_timestamp; diff --git a/packages/circuits/tests/email_auth_production.test.ts b/packages/circuits/tests/email_auth_production.test.ts index 9292cefc..5b8a5dcd 100644 --- a/packages/circuits/tests/email_auth_production.test.ts +++ b/packages/circuits/tests/email_auth_production.test.ts @@ -381,80 +381,80 @@ describe("Email Auth Production", () => { }); /// The outlook email fails at EmailAuth_723 line: 118. The circuit needs to put a dummy 1 in similar to `replaced_code_regex_reveal`. - // it("Verify a production email for recovery sent from outlook pc", async () => { - // const emailFilePath = path.join( - // __dirname, - // "./emails/recovery_outlook_pc.eml" - // ); + it("Verify a production email for recovery sent from outlook pc", async () => { + const emailFilePath = path.join( + __dirname, + "./emails/recovery_outlook_pc.eml" + ); - // const emailRaw = readFileSync(emailFilePath, "utf8"); - // const parsedEmail = await relayerUtils.parseEmail(emailRaw); - // console.log(parsedEmail); - // const accountCode = - // "0x01eb9b204cc24c3baee11accc37d253a9c53e92b1a2cc07763475c135d575b76"; + const emailRaw = readFileSync(emailFilePath, "utf8"); + const parsedEmail = await relayerUtils.parseEmail(emailRaw); + console.log(parsedEmail); + const accountCode = + "0x01eb9b204cc24c3baee11accc37d253a9c53e92b1a2cc07763475c135d575b76"; - // const circuitInputs = - // await genEmailCircuitInput(emailFilePath, accountCode, { - // maxHeaderLength: 1024, - // maxBodyLength: 1024, - // ignoreBodyHashCheck: false, - // shaPrecomputeSelector, - // }); - // console.log(circuitInputs); - // const witness = await circuit.calculateWitness(circuitInputs); - // await circuit.checkConstraints(witness); - // console.log("checkConstraints done"); + const circuitInputs = + await genEmailCircuitInput(emailFilePath, accountCode, { + maxHeaderLength: 1024, + maxBodyLength: 1024, + ignoreBodyHashCheck: false, + shaPrecomputeSelector, + }); + console.log(circuitInputs); + const witness = await circuit.calculateWitness(circuitInputs); + await circuit.checkConstraints(witness); + console.log("checkConstraints done"); - // const domainName = "outlook.com"; - // const paddedDomain = relayerUtils.padString(domainName, 255); - // const domainFields = await relayerUtils.bytesToFields(paddedDomain); - // for (let idx = 0; idx < domainFields.length; ++idx) { - // expect(BigInt(domainFields[idx])).toEqual(witness[1 + idx]); - // } - // console.log("domainFields done"); + const domainName = "outlook.com"; + const paddedDomain = relayerUtils.padString(domainName, 255); + const domainFields = await relayerUtils.bytesToFields(paddedDomain); + for (let idx = 0; idx < domainFields.length; ++idx) { + expect(BigInt(domainFields[idx])).toEqual(witness[1 + idx]); + } + console.log("domainFields done"); - // const expectedPubKeyHash = await relayerUtils.publicKeyHash( - // parsedEmail.publicKey - // ); - // expect(BigInt(expectedPubKeyHash)).toEqual( - // witness[1 + domainFields.length] - // ); - // console.log("expectedPubKeyHash done"); + const expectedPubKeyHash = await relayerUtils.publicKeyHash( + parsedEmail.publicKey + ); + expect(BigInt(expectedPubKeyHash)).toEqual( + witness[1 + domainFields.length] + ); + console.log("expectedPubKeyHash done"); - // const expectedEmailNullifier = await relayerUtils.emailNullifier( - // parsedEmail.signature - // ); - // expect(BigInt(expectedEmailNullifier)).toEqual( - // witness[1 + domainFields.length + 1] - // ); - // console.log("expectedEmailNullifier done"); + const expectedEmailNullifier = await relayerUtils.emailNullifier( + parsedEmail.signature + ); + expect(BigInt(expectedEmailNullifier)).toEqual( + witness[1 + domainFields.length + 1] + ); + console.log("expectedEmailNullifier done"); - // const timestamp = BigInt(0); - // expect(timestamp).toEqual(witness[1 + domainFields.length + 2]); - // console.log("timestamp done"); + const timestamp = BigInt(0); + expect(timestamp).toEqual(witness[1 + domainFields.length + 2]); + console.log("timestamp done"); - // const maskedCommand = "Accept guardian request for 0x04884491560f38342C56E26BDD0fEAbb68E2d2FC"; - // const paddedMaskedCommand = relayerUtils.padString(maskedCommand, 605); - // const maskedCommandFields = - // await relayerUtils.bytesToFields(paddedMaskedCommand); - // for (let idx = 0; idx < maskedCommandFields.length; ++idx) { - // expect(BigInt(maskedCommandFields[idx])).toEqual( - // witness[1 + domainFields.length + 3 + idx] - // ); - // } + const maskedCommand = "Accept guardian request for 0x04884491560f38342C56E26BDD0fEAbb68E2d2FC"; + const paddedMaskedCommand = relayerUtils.padString(maskedCommand, 605); + const maskedCommandFields = + await relayerUtils.bytesToFields(paddedMaskedCommand); + for (let idx = 0; idx < maskedCommandFields.length; ++idx) { + expect(BigInt(maskedCommandFields[idx])).toEqual( + witness[1 + domainFields.length + 3 + idx] + ); + } - // const fromAddr = "suegamisora@outlook.com"; - // const accountSalt = await relayerUtils.generateAccountSalt(fromAddr, accountCode); - // expect(BigInt(accountSalt)).toEqual( - // witness[1 + domainFields.length + 3 + maskedCommandFields.length] - // ); + const fromAddr = "suegamisora@outlook.com"; + const accountSalt = await relayerUtils.generateAccountSalt(fromAddr, accountCode); + expect(BigInt(accountSalt)).toEqual( + witness[1 + domainFields.length + 3 + maskedCommandFields.length] + ); - // expect(BigInt(1)).toEqual( - // witness[ - // 1 + domainFields.length + 3 + maskedCommandFields.length + 1 - // ] - // ); - // }); + expect(BigInt(1)).toEqual( + witness[ + 1 + domainFields.length + 3 + maskedCommandFields.length + 1 + ] + ); + }); }); diff --git a/packages/circuits/tests/emails/recovery_outlook_pc.eml b/packages/circuits/tests/emails/recovery_outlook_pc.eml new file mode 100644 index 00000000..7130ba74 --- /dev/null +++ b/packages/circuits/tests/emails/recovery_outlook_pc.eml @@ -0,0 +1,205 @@ +Delivered-To: emaiwallet.alice@gmail.com +Received: by 2002:a05:6f02:6f0:b0:7c:27d1:5778 with SMTP id f48csp3959101rce; + Sun, 22 Dec 2024 22:16:54 -0800 (PST) +X-Google-Smtp-Source: AGHT+IHEDJn8h26moeYqa/BrO6n/dCW+0I+5RnS94asBuj0eiq8XfA32jQ2iv2uTE9r1a7Lv7a+D +X-Received: by 2002:a05:6a20:1596:b0:1db:e0d7:675c with SMTP id adf61e73a8af0-1e5e045a0b9mr20242030637.13.1734934614289; + Sun, 22 Dec 2024 22:16:54 -0800 (PST) +ARC-Seal: i=2; a=rsa-sha256; t=1734934614; cv=pass; + d=google.com; s=arc-20240605; + b=MaMmbROtrU9d1ngYOs564MBjHdZLuyPbzNDtRiXmUSMAnirk+Ut1ZBPiC+ybN5YQBf + DT94m8yMurNj6T8al4gIENtor2AXsRQV5BNdqkCiH4GzgOlWX5bMOA7aUNLovW4qfFAI + e7drNOGIZhm+3hk7LOVOlun5/j7/2U56RGjk/k+StbDtO71OMxb7aW6rNPnLne5+hZ8K + OuUVXBm2F12nIf4+gSOrNJB1hQg5cT1VVIpKr8xa/RvC8RW9HVYFmWyEchlCiSjX5Yht + R9bSLJStQVsF5iG86dxltYs1+v4Pnw9NFK+G/q7HDpsbtf7KDOHom4Y3kJq2ewNM6PJ+ + tCog== +ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; + h=mime-version:msip_labels:content-language:accept-language + :in-reply-to:references:message-id:date:thread-index:thread-topic + :subject:to:from:dkim-signature; + bh=+wejlhDGzwiyngPZCtT/e/R56uJFbKvAi4OypPb9VLY=; + fh=eREBp6iC7fnB3nXpDQAqkNJ7A3XcZxbEiUCT+EXv4P4=; + b=i1W++TZcdZ4vArAYUkw5qgBxuwdURlfl3u+uV82ILwERWq+Cxvfztl9EA16oWmoNDy + WSQLub26b/tZfAMrxbQL4GjstWEqW8SXx7+qJDta43+q3BGFdIpqp9Sp9iASDSX4cUU4 + kX//RkiTK/rF83pXCj7v6KzmV0p7xqLLbWVggWnWsjKSm8b40sziErtwkQWT2Bt1YqMg + kkEdb2kh2V188VIzva3eAULiV/wXZ7uR1/ClJPWbD2fjHEp76ESNU6pSv9W/zSGMCp2x + d+g84Y7Cn20ySE8v63VC5nYRrIatMVCRknpBh4gvhQGvyn8ABV0nVhO+ridHNgp6EawU + pPRQ==; + dara=google.com +ARC-Authentication-Results: i=2; mx.google.com; + dkim=pass header.i=@outlook.com header.s=selector1 header.b=l0nsQKxD; + arc=pass (i=1); + spf=pass (google.com: domain of suegamisora@outlook.com designates 2a01:111:f403:2c18::824 as permitted sender) smtp.mailfrom=suegamisora@outlook.com; + dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com +Return-Path: +Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12olkn20824.outbound.protection.outlook.com. [2a01:111:f403:2c18::824]) + by mx.google.com with ESMTPS id d2e1a72fcca58-72aad924d07si10345381b3a.250.2024.12.22.22.16.54 + for + (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); + Sun, 22 Dec 2024 22:16:54 -0800 (PST) +Received-SPF: pass (google.com: domain of suegamisora@outlook.com designates 2a01:111:f403:2c18::824 as permitted sender) client-ip=2a01:111:f403:2c18::824; +Authentication-Results: mx.google.com; + dkim=pass header.i=@outlook.com header.s=selector1 header.b=l0nsQKxD; + arc=pass (i=1); + spf=pass (google.com: domain of suegamisora@outlook.com designates 2a01:111:f403:2c18::824 as permitted sender) smtp.mailfrom=suegamisora@outlook.com; + dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=outlook.com +ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; + b=GRApS52KGCFFcSjFY3hqp7moOLiQ+ZVDY8wGStOZ18d28ASqnMqd9ZhvTEV2uoqBeczD2vkYEgwLowjS0KPlyQ3GK2UmDniL79L4cFdQ3YGy+9+50BSjU1GC7t9WFQNoToqGMRepCMZ4eedKFcu/0trmhtN2IY3yizGLMvzHuWpM3b3NzqWcUvttQNNq+UHR/Xf69IVV5TaMs3GoB+6cgMV6QpYQm6lPquFaSfqllhAgo4m6r5LKMjDFFP1UF5otnLOfQ7BbTfJZ5OwBf897kgcKUZ4ZaRixWDhXZWHW92JQx6VPsHJe6bl+SLs8ZGqUGVWkYtbUbGBcvKOZKHfyIQ== +ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; + s=arcselector10001; + h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; + bh=+wejlhDGzwiyngPZCtT/e/R56uJFbKvAi4OypPb9VLY=; + b=GNAi6JYs4zru1kz6q71XbuZFJX8+eU+JQwcpgzjPn6apBlemjjCAunakZg/KETh63Vh9rMEo7rsUwC/fKl50PfU2XtpFvL6xKI/ZZkTBb/SllWKUz2j8vadd6acJc6R1mLTOAepN0rTujCLJFU072BScBD7kd/3BLAAclOMn5LZj/+JPohCa/XxMfienNmSgw0EOleN2YaTGzHkgoZJBX1fXG7eBnDbVgz3iDQkM74BEQfvPlksToq3Zv+rBRQssB8132OOImOTwrK0cOB22x5FcU6VCVr9gNQiJZJO5DP1gpZX4LVqsgVjrTPr/5gZf6k6PTw9+lqbE2SkP/k3BaA== +ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; + dkim=none; arc=none +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; + s=selector1; + h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; + bh=+wejlhDGzwiyngPZCtT/e/R56uJFbKvAi4OypPb9VLY=; + b=l0nsQKxDk3XimVxayH8L56vFXsLkOkoIzqgW19YHTWmbbspx/5n7Qzhx4PuqRieO7NPSHMYOTkNbyHa/jv3XfXkTvPRGkwuOWLv76R59raoK7YGiySM3duNcqHPpwegcY7NQ32iycAYcc2GusZ6aHFWIQxHgAOMlkXaVgA9i6QVwqU3gRPTqlWOyGEG76z2cnJlnbcFKAOnZXDegMh3PDLJaLYSKE06HRfKTcw3WWfY+m98sZ3hjtCflwlFvZfE6Anx4K85BqOd7Q+V/Pdau/2LZXpl7qTJE9hqTJwneC5LFS90fo6akXRIa5f5Ckpgzih7nvHJb3d7mDbgatmSWrQ== +Received: from CH2PR11MB8865.namprd11.prod.outlook.com (2603:10b6:610:282::12) + by CH3PR11MB8185.namprd11.prod.outlook.com (2603:10b6:610:159::12) with + Microsoft SMTP Server (version=TLS1_2, + cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8272.19; Mon, 23 Dec + 2024 06:16:52 +0000 +Received: from CH2PR11MB8865.namprd11.prod.outlook.com + ([fe80::d846:cf14:a452:9280]) by CH2PR11MB8865.namprd11.prod.outlook.com + ([fe80::d846:cf14:a452:9280%7]) with mapi id 15.20.8272.013; Mon, 23 Dec 2024 + 06:16:52 +0000 +From: Sora Suegami +To: "emaiwallet.alice@gmail.com" +Subject: Re: [Reply Needed] Test Email 12 +Thread-Topic: [Reply Needed] Test Email 12 +Thread-Index: AQHbVQIitpitB2JoZEeJbrJhWCqT1rLzWnz5 +Date: Mon, 23 Dec 2024 06:16:51 +0000 +Message-ID: + +References: <6769001e.630a0220.365dc.169d@mx.google.com> +In-Reply-To: <6769001e.630a0220.365dc.169d@mx.google.com> +Accept-Language: en-US, ja-JP +Content-Language: en-US +X-MS-Has-Attach: +X-MS-TNEF-Correlator: +msip_labels: +x-ms-publictraffictype: Email +x-ms-traffictypediagnostic: CH2PR11MB8865:EE_|CH3PR11MB8185:EE_ +x-ms-office365-filtering-correlation-id: cf44d195-4d7e-43b1-368d-08dd23196447 +x-microsoft-antispam: + BCL:0;ARA:14566002|461199028|19110799003|9112599006|15080799006|15030799003|8060799006|8062599003|3430499032|3420499032|102099032|440099028|3412199025; +x-microsoft-antispam-message-info: + =?us-ascii?Q?yIyf2FhoaM/tuC198vQLft4kaAtQmpTvlVEOOYrIZ1DZ4uZXnxrVhHtyZ4aL?= + =?us-ascii?Q?xrre4c+tYwc7KaOlyfVEBE6uMbMWXEfP0duQ0msoszKCsNsXK6fdNqvSmGGu?= + =?us-ascii?Q?9QoAY7dxd/U/A6+5nsnfRBso7bJ3Nyqrea+2NiMXoSqmmrLkDEprBnZBNqC3?= + =?us-ascii?Q?DI9X8rV7FzdfvhlxrUIqXJzYJYO2/RClDBF6CbVMF/Qx2j9Ulxv3ztLdL4CI?= + =?us-ascii?Q?MuBef1pn5P0zedLErrf23KdwCnM8rHlJzN3FRqakRDHRQkh9k8qNsK8x1RNB?= + =?us-ascii?Q?E2BLnWmneH82f0nzv+05qaCa8MnSeDThJwqwvNn4F26ZuXqtG09XmU5LN9Q6?= + =?us-ascii?Q?Tn/96YhxqSdDmp1RcIbF75xMARc7psxBK6f6hCuy75Xs0mvTbp5ZkOK9jvcv?= + =?us-ascii?Q?WJplkY5rivPYBDnxrdz9vo+nERVHCAI04Mi89EtKZUFlF1bUmKrOxjWB8Dmw?= + =?us-ascii?Q?OgyGbHLlVQnG9W7gVA6d9rE+JZKu35pCSa8ZL2FD9Kps55xeTbyFzghn2Tt2?= + =?us-ascii?Q?dTY/rBG46AYe9qIFLu8P9KykV1rS9WNMUutLmUnbhNd/r3ToMdU2RYF1Xt2/?= + =?us-ascii?Q?dv5lRVusXxnhj0f81G6rrXp3+lOL0Qz9pA88ltBMzQnVUUR2g2AfFaQPX4BI?= + =?us-ascii?Q?H5JOE1Q22RSwucsv5nxEJ6YiIppp/bN13MCf/YJePYrkFhQO256lUDfwtIPB?= + =?us-ascii?Q?pzZY/Prox68bg+N3KC4BnsdoNSsfwOn3AnfeaSluKIFwqmbLrfGtn5TNd+2y?= + =?us-ascii?Q?xhf818iaI6iagHQ6ntCgtjZnKHAo3Hssx7T30LjXkTKbCZTwaWJX886h1MM7?= + =?us-ascii?Q?2iWUEiG3g2vxK2PTm6nuEArlLRsb0B9dHTl/ON2q8AvD26VHAY9v2S5pNqBy?= + =?us-ascii?Q?2fvN0/h6FdQsDGWEXr78UDuAho4bsHUyDNPUuAiZcR4L+ku2L0Rzdh8PLcGN?= + =?us-ascii?Q?JIFEGsHYjmThS0Jcm4o0PQk23j55wKw5aU8IBq8m8iU7g7bJMIkJ9J42JcRv?= + =?us-ascii?Q?Udlv3atNtoUYlesw4iXWAXZD85DtYG7Bs0xdRwj+hHxEeRHPdGuvdHivAWPf?= + =?us-ascii?Q?48YW4Umu?= +x-ms-exchange-antispam-messagedata-chunkcount: 1 +x-ms-exchange-antispam-messagedata-0: + =?us-ascii?Q?UWapLvUpJEyX7SUhsitou+QE8NVzIjInJjwzv055DG1ARRzD/ERc0sPiTwTl?= + =?us-ascii?Q?qK7X1bGXiKz/+TUNNkZClIeTUjSoZMk+GAWouBeMT1MJDMxV4ysKfVmR+i7w?= + =?us-ascii?Q?u5FaKH0e4ER0IgKVgiL+DQx0VrX2DzGXtDsaLzm1DQSdfnNd3yF2BWi/y1kT?= + =?us-ascii?Q?DqbA87HIlQMXocfvtGSHMuMVl3fYfm9QNpH6LejVcJ6yEtg8GkvhSZ3+8JLn?= + =?us-ascii?Q?WJjy2H7OUDyWRCqdRgusToPGDR2ko4XYWPYRlHAhCMleXUWngkYe7T3+zQK+?= + =?us-ascii?Q?9c5i7wxjBjsvRb/aCrzEhbpuUfqUQEe29LYAFTM2fPrbp86kZG0sWT1DcNW1?= + =?us-ascii?Q?CkaV7YCdbGJQQziSgsquMPEz+nHipqs4S+vEKMjfzxqrbYLkMKH17omKQXLh?= + =?us-ascii?Q?SQUX1jQJVRpJuTE2EBzUuRzqAjQjm8bRovXikIwpp5EryPGKuJ6+sgI/4BhJ?= + =?us-ascii?Q?DD1OskSo59c2Hy+NeU987AR6tg09JjIbi63TsUdtYcPhzd4H+4TLfbjB+DXm?= + =?us-ascii?Q?xTqBPnD8FYZwlt69sV0cBDIjbdg/H5vHrBbmvEgXXnfJKuDqBTcK5ardiyUf?= + =?us-ascii?Q?dormzsViZ9h7oG0dALp36/Vz8L+1Cw/ZdG1gPvhwjcExGFJOMu2d/Qi+ljXL?= + =?us-ascii?Q?0xqlwRvbYTK8uCkBJAcTI0cNBDzLACZMDaU7kRsSaSTSyR8OwQI4jsk3HFo8?= + =?us-ascii?Q?Tb9yxAzMH5dcTQcPp6rJYROpW/OaVDki+e/2G906VH3WVTW6ajw4JQpVDm15?= + =?us-ascii?Q?7DiY+tH6EH7OWZZaji8PERot4/OR8Fa+mVgtMgJZN5Sbno6FdZiGNbP8lt+c?= + =?us-ascii?Q?9fPjYCAbaw8DW9ZhGyqd4O8Bqa4v87Iac5b2zYj+oZHC3VR62NgKLu9yVebI?= + =?us-ascii?Q?QXNVNCfmRW3IdBepAgBB4f7dPwCE0HfaNaLdJOChJW0mfoOKnQlM/TE/Ol2X?= + =?us-ascii?Q?jJHDOjmV+pN/jPuDHTAuUb9KstIWGZjgka0YyV8uM5BrPRn0iBLnrbf5arQL?= + =?us-ascii?Q?r3/gKfztgWMksnZQtXQnOO4xyiG2UMrKjhJZDWTDjf0J+iiuNZ2m9DgaPn4N?= + =?us-ascii?Q?p7RAvzDPQVvn65zWDYnO1aIK5qv89qA0p4N45/zeGC9+ycMxfLROcZl+oBe5?= + =?us-ascii?Q?n5hHAVgw2kbn17qzrzLqieTmPwioKdh4gc1i1YbefP2QdTAmcnloe/rvoRaQ?= + =?us-ascii?Q?q6wm/BTPtCKSotNWg43htIGXMGAe7qppKmUY/WBKmk+7eH5fhIORaEXle+k?= + =?us-ascii?Q?=3D?= +Content-Type: multipart/alternative; + boundary="_000_CH2PR11MB886585DFDB2B1F9D759A61FFB2022CH2PR11MB8865namp_" +MIME-Version: 1.0 +X-OriginatorOrg: outlook.com +X-MS-Exchange-CrossTenant-AuthAs: Internal +X-MS-Exchange-CrossTenant-AuthSource: CH2PR11MB8865.namprd11.prod.outlook.com +X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 +X-MS-Exchange-CrossTenant-Network-Message-Id: cf44d195-4d7e-43b1-368d-08dd23196447 +X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Dec 2024 06:16:51.9706 + (UTC) +X-MS-Exchange-CrossTenant-fromentityheader: Hosted +X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa +X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000 +X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH3PR11MB8185 + +--_000_CH2PR11MB886585DFDB2B1F9D759A61FFB2022CH2PR11MB8865namp_ +Content-Type: text/plain; charset="us-ascii" +Content-Transfer-Encoding: quoted-printable + + +________________________________ +From: emaiwallet.alice@gmail.com +Sent: Monday, December 23, 2024 3:15 PM +To: suegamisora@outlook.com +Subject: [Reply Needed] Test Email 12 + +Hello! + +This is a test email with a basic HTML body. + +[zkemail-begin]Accept guardian request for 0x04884491560f38342C56E26BDD0fEA= +bb68E2d2FC Code 01eb9b204cc24c3baee11accc37d253a9c53e92b1a2cc07763475c135d5= +75b76[zkemail-end] + +Thank you! + +--_000_CH2PR11MB886585DFDB2B1F9D759A61FFB2022CH2PR11MB8865namp_ +Content-Type: text/html; charset="us-ascii" +Content-Transfer-Encoding: quoted-printable + + + + + + + +
+
+
+
+
+
From: emaiwallet.alice@gmai= +l.com <emaiwallet.alice@gmail.com>
+Sent: Monday, December 23, 2024 3:15 PM
+To: suegamisora@outlook.com <suegamisora@outlook.com>
+Subject: [Reply Needed] Test Email 12
+
 
+
+
+

Hello!

+

This is a test email with a basic HTML body.

+
[zkemail-begin]Accept guardian request for 0x04= +884491560f38342C56E26BDD0fEAbb68E2d2FC Code 01eb9b204cc24c3baee11accc37d253= +a9c53e92b1a2cc07763475c135d575b76[zkemail-end]
+

Thank you!

+
+ + + +--_000_CH2PR11MB886585DFDB2B1F9D759A61FFB2022CH2PR11MB8865namp_-- diff --git a/yarn.lock b/yarn.lock index 2dde94af..f22a184d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1726,9 +1726,9 @@ "@zk-email/relayer-utils@https://gitpkg.vercel.app/zkemail/relayer-utils/pkg?feat/fix-selector-bugs": version "0.4.60" - resolved "https://gitpkg.vercel.app/zkemail/relayer-utils/pkg?feat/fix-selector-bugs#2ece4577e83ba322eb56708f95d637666bd81001" + resolved "https://gitpkg.vercel.app/zkemail/relayer-utils/pkg?feat/fix-selector-bugs#056b6998e0cb52971ef981e57e7dd9fc449bb2a5" -"@zk-email/zk-regex-circom@=2.3.2": +"@zk-email/zk-regex-circom@=2.3.2", "@zk-email/zk-regex-circom@^2.3.1": version "2.3.2" resolved "https://registry.yarnpkg.com/@zk-email/zk-regex-circom/-/zk-regex-circom-2.3.2.tgz#d3ad819ea0de3ce7612aa9ecde0497c3fac514fc" integrity sha512-GXp4Z/93iF54hfJwlWl52HFiqpmLCeSHFc4HlYpxj5EWHQK6ibFQMLUWTJsdA3eh/erjO4UX+HlEIJ/gHhLg9g== @@ -1736,14 +1736,6 @@ commander "^11.0.0" snarkjs "^0.7.5" -"@zk-email/zk-regex-circom@^2.3.1": - version "2.3.1" - resolved "https://registry.yarnpkg.com/@zk-email/zk-regex-circom/-/zk-regex-circom-2.3.1.tgz#032cdf12b5f587f828d6e872a235c0120d463bc8" - integrity sha512-FJNi4QL07teQPuXV4EZqosPpA4riOSeFX2xD+cd4CCuf5b1RmqGqXoBz7yxT0QXuwNqdgooY6v6/xhH1o4X7vg== - dependencies: - commander "^11.0.0" - snarkjs "^0.7.5" - aes-js@3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" @@ -2082,7 +2074,7 @@ call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1: es-errors "^1.3.0" function-bind "^1.1.2" -call-bind@^1.0.7: +call-bind@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.8.tgz#0736a9660f537e3388826f440d5ec45f744eaa4c" integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== @@ -2092,7 +2084,7 @@ call-bind@^1.0.7: get-intrinsic "^1.2.4" set-function-length "^1.2.2" -call-bound@^1.0.2: +call-bound@^1.0.2, call-bound@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/call-bound/-/call-bound-1.0.3.tgz#41cfd032b593e39176a71533ab4f384aa04fd681" integrity sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA== @@ -2116,9 +2108,9 @@ camelcase@^6.0.0, camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001688: - version "1.0.30001689" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001689.tgz#67ca960dd5f443903e19949aeacc9d28f6e10910" - integrity sha512-CmeR2VBycfa+5/jOfnp/NpWPGd06nf1XYiefUvhXFfZE4GkRc9jv+eGPS4nT558WS/8lYCzV8SlANCIPvbWP1g== + version "1.0.30001690" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001690.tgz#f2d15e3aaf8e18f76b2b8c1481abde063b8104c8" + integrity sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w== chai@^4.3.6, chai@^4.3.7: version "4.5.0" @@ -2390,11 +2382,11 @@ dotenv@^16.3.1: resolved "https://github.com/dapphub/ds-test#e282159d5170298eb2455a6c05280ab5a73a4ef0" dunder-proto@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.0.tgz#c2fce098b3c8f8899554905f4377b6d85dabaa80" - integrity sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A== + version "1.0.1" + resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== dependencies: - call-bind-apply-helpers "^1.0.0" + call-bind-apply-helpers "^1.0.1" es-errors "^1.3.0" gopd "^1.2.0" @@ -2406,9 +2398,9 @@ ejs@^3.1.10, ejs@^3.1.6: jake "^10.8.5" electron-to-chromium@^1.5.73: - version "1.5.73" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.73.tgz#f32956ce40947fa3c8606726a96cd8fb5bb5f720" - integrity sha512-8wGNxG9tAG5KhGd3eeA0o6ixhiNdgr0DcHWm85XPCphwZgD1lIEoi6t3VERayWao7SF7AAZTw6oARGJeVjH8Kg== + version "1.5.75" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.75.tgz#bba96eabf0e8ca36324679caa38b982800acc87d" + integrity sha512-Lf3++DumRE/QmweGjU+ZcKqQ+3bKkU/qjaKYhIJKEOhgIO9Xs6IiAQFkfFoj+RhgDk4LUeNsLo6plExHqSyu6Q== elliptic@6.5.4: version "6.5.4" @@ -2692,8 +2684,8 @@ for-each@^0.3.3: is-callable "^1.1.3" "forge-std@https://github.com/foundry-rs/forge-std": - version "1.9.4" - resolved "https://github.com/foundry-rs/forge-std#d3db4ef90a72b7d24aa5a2e5c649593eaef7801d" + version "1.9.5" + resolved "https://github.com/foundry-rs/forge-std#b93cf4bc34ff214c099dc970b153f85ade8c9f66" fs.realpath@^1.0.0: version "1.0.0" @@ -2929,9 +2921,9 @@ is-callable@^1.1.3: integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-core-module@^2.16.0: - version "2.16.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.0.tgz#6c01ffdd5e33c49c1d2abfa93334a85cb56bd81c" - integrity sha512-urTSINYfAYgcbLb0yDQ6egFm6h3Mo1DcF9EkyXSRjjzdHbsulg01qhwWuXdOoUBuTkbQ80KDboXa0vFJ+BDH+g== + version "2.16.1" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: hasown "^2.0.2" @@ -2980,11 +2972,11 @@ is-stream@^2.0.0: integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-typed-array@^1.1.3: - version "1.1.13" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.13.tgz#d6c5ca56df62334959322d7d7dd1cca50debe229" - integrity sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw== + version "1.1.15" + resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.15.tgz#4bfb4a45b61cee83a5a46fba778e4e8d59c0ce0b" + integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== dependencies: - which-typed-array "^1.1.14" + which-typed-array "^1.1.16" is-unicode-supported@^0.1.0: version "0.1.0" @@ -3585,9 +3577,9 @@ makeerror@1.0.12: tmpl "1.0.5" math-intrinsics@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.0.0.tgz#4e04bf87c85aa51e90d078dac2252b4eb5260817" - integrity sha512-4MqMiKP90ybymYvsut0CH2g4XWbfLtmlCkXmtmdcDCxNB+mQcu1w/1+L/VD7vi/PSv7X2JYV7SCcR+jiPXnQtA== + version "1.1.0" + resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== merge-stream@^2.0.0: version "2.0.0" @@ -4021,9 +4013,9 @@ resolve.exports@^2.0.0: integrity sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A== resolve@^1.14.2, resolve@^1.20.0: - version "1.22.9" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.9.tgz#6da76e4cdc57181fa4471231400e8851d0a924f3" - integrity sha512-QxrmX1DzraFIi9PxdG5VkRfRwIgjwyud+z/iBwfRRrVmHc+P9Q7u2lSSpQ6bjr2gy5lrqIiU9vb6iAeGf2400A== + version "1.22.10" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" + integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== dependencies: is-core-module "^2.16.0" path-parse "^1.0.7" @@ -4449,15 +4441,16 @@ web-worker@^1.2.0: resolved "https://registry.yarnpkg.com/web-worker/-/web-worker-1.3.0.tgz#e5f2df5c7fe356755a5fb8f8410d4312627e6776" integrity sha512-BSR9wyRsy/KOValMgd5kMyr3JzpdeoR9KVId8u5GVlTTAtNChlsE4yTxeY7zMdNSyOmoKBv8NH2qeRY9Tg+IaA== -which-typed-array@^1.1.14, which-typed-array@^1.1.2: - version "1.1.16" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.16.tgz#db4db429c4706feca2f01677a144278e4a8c216b" - integrity sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ== +which-typed-array@^1.1.16, which-typed-array@^1.1.2: + version "1.1.18" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.18.tgz#df2389ebf3fbb246a71390e90730a9edb6ce17ad" + integrity sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA== dependencies: available-typed-arrays "^1.0.7" - call-bind "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.3" for-each "^0.3.3" - gopd "^1.0.1" + gopd "^1.2.0" has-tostringtag "^1.0.2" which@^2.0.1: