diff --git a/webextension/content/oracles.js b/webextension/content/oracles.js index 772a9ac..b5ce181 100644 --- a/webextension/content/oracles.js +++ b/webextension/content/oracles.js @@ -1,4 +1,4 @@ -var oracles_intact = false; //must be explicitely set to true +var oracles_intact = false; //will be set to true after the oracle check completes var old_oracle = { 'snapshotId': 'snap-0f838cf4591ac24e0', @@ -28,14 +28,10 @@ var oracle = { } - - //there can be potentially multiple oracles to choose from var oracles = []; oracles.push(oracle); -//all servers trusted to perform notary (including non-oracles) -//TODO: configurable -var pagesigner_servers = [oracle]; + //assuming both events happened on the same day, get the time //difference between them in seconds @@ -330,6 +326,7 @@ async function verifyOldOracle(name){ if (typeof module !== 'undefined'){ //we are in node.js environment module.exports={ check_oracle, - oracle + oracle, + verifyOldOracle } } \ No newline at end of file diff --git a/webextension/content/pgsg-node/pgsg-node.js b/webextension/content/pgsg-node/pgsg-node.js index c3ef554..c560765 100755 --- a/webextension/content/pgsg-node/pgsg-node.js +++ b/webextension/content/pgsg-node/pgsg-node.js @@ -45,6 +45,7 @@ getExpandedKeys = tlsn.getExpandedKeys getModulus = verifychain.getModulus getTime = utils.getTime gunzip_http = utils.gunzip_http +oracle = oracles.oracle parse_certs = verifychain.parse_certs pem2ab = utils.pem2ab pubkeyPEM2raw = utils.pubkeyPEM2raw @@ -55,6 +56,8 @@ wildTest = utils.wildTest verifyChain = verifychain.verifyChain verifyECParamsSig = tlsn.verifyECParamsSig verifyNotarySig = tlsn.verifyNotarySig +verifyOldOracle = oracles.verifyOldOracle +verifyPgsg = mainjs.verifyPgsg //override @@ -162,14 +165,15 @@ import_resource = async function(path){ //override Certificate = pkijs.Certificate; CertificateChainValidationEngine = pkijs.CertificateChainValidationEngine +use_max_fragment_length = false; //override -createNewSession = async function(creationTime, commonName, cleartext, pgsg, is_imported){ +createNewSession = async function(creationTime, commonName, notaryName, cleartext, pgsg, is_imported){ var suffix = is_imported ? "_imported" : "" var dirname = 'session_'+ creationTime + "_" + commonName + suffix fs.mkdirSync(dirname) fs.writeFileSync(path.join(__dirname, dirname, "cleartext"), cleartext) - fs.writeFileSync(path.join(__dirname, dirname, commonName+'.pgsg'), Buffer.from(pgsg)) + fs.writeFileSync(path.join(__dirname, dirname, commonName+'.pgsg'), Buffer.from(JSON.stringify(pgsg))) return dirname } @@ -219,13 +223,13 @@ if (argv[2] === 'verify') { } var pgsgfile = argv[3] var pgsgBuf = fs.readFileSync(pgsgfile) - var pgsg = pgsgBuf.toJSON().data - console.log('pgsg.length', pgsg.length) + console.log('pgsg.length', pgsgBuf.length) + var pgsg = JSON.parse(pgsgBuf) await verifychain.parse_certs() - var rv = await mainjs.verify_pgsg(pgsg) + var rv = await mainjs.verifyPgsg(pgsg) var server_name = rv[1] var cleartext = rv[0] - var dirname = await createNewSession(getTime(), server_name, cleartext, pgsg, true) + var dirname = await createNewSession(getTime(), server_name, 'notary name', cleartext, pgsg, true) console.log('session saved in', dirname) exit() }