added email caching if no internet for input generation

This commit is contained in:
Divide-By-0
2022-10-03 22:17:19 -04:00
parent 39b593b068
commit c2b7a72cf9
3 changed files with 19 additions and 2 deletions

View File

@@ -12,8 +12,10 @@ import { shaHash } from "../../src/helpers/shaHash";
import { dkimVerify } from "../../src/helpers/dkim";
import { assert } from "console";
import * as fs from "fs";
var Cryo = require('cryo');
const pki = require("node-forge").pki;
interface ICircuitInputs {
modulus?: string[];
signature?: string[];
@@ -135,8 +137,17 @@ export async function getCircuitInputs(
}
export async function generate_inputs(email: Buffer) {
// console.log(email);
const result = await dkimVerify(email);
var result;
try {
result = await dkimVerify(email);
const _ = result.results[0].publicKey.toString();
var frozen = Cryo.stringify(result);
fs.writeFileSync(`./email_cache.json`, frozen, { flag: "w" });
} catch (e) {
console.log("Reading cached email instead!")
let frozen = fs.readFileSync(`./email_cache.json`, { encoding: "utf-8" });
result = Cryo.parse(frozen);
}
let sig = BigInt("0x" + Buffer.from(result.results[0].signature, "base64").toString("hex"));
let message = result.results[0].status.signature_header;

View File

@@ -14,6 +14,7 @@
"base64-sol": "^1.1.0",
"circomlib": "^2.0.3",
"circomlibjs": "^0.1.2",
"cryo": "^0.0.6",
"libmime": "^5.1.0",
"localforage": "^1.10.0",
"lodash": "^4.17.21",

View File

@@ -4312,6 +4312,11 @@ cross-spawn@^6.0.0:
shebang-command "^1.2.0"
which "^1.2.9"
cryo@^0.0.6:
version "0.0.6"
resolved "https://registry.yarnpkg.com/cryo/-/cryo-0.0.6.tgz#16833295d2ee16ff39711db840617b7ae4af0ba4"
integrity sha512-vSbO1hJvP9oOGXcKHiAj3U37rtErI8jIZ8gOp8EfiQgPncAv6nc4JArGWzqrxlwA5xe6Sph5OUAg//7yqTOyIg==
crypto-browserify@^3.11.0:
version "3.12.0"
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec"