UNPKG

@reclaimprotocol/attestor-core

Version:

<div> <div> <img src="https://raw.githubusercontent.com/reclaimprotocol/.github/main/assets/banners/Attestor-Core.png" /> </div> </div>

70 lines 5.32 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Benchmark = Benchmark; const tls_1 = require("@reclaimprotocol/tls"); const logger_1 = require("../utils/logger"); const zk_1 = require("../utils/zk"); const ZK_CIPHER_SUITES = [ 'TLS_CHACHA20_POLY1305_SHA256', 'TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384', 'TLS_AES_128_GCM_SHA256' ]; async function Benchmark() { let benchmarkRes = ''; for (const cipherSuite of ZK_CIPHER_SUITES) { const now = Date.now(); const alg = cipherSuite.includes('CHACHA20') ? 'CHACHA20-POLY1305' : (cipherSuite.includes('AES_256_GCM') ? 'AES-256-GCM' : 'AES-128-GCM'); const keylength = alg === 'AES-128-GCM' ? 16 : 32; const key = Buffer.alloc(keylength, 0); const { ivLength: fixedIvLength, } = tls_1.SUPPORTED_CIPHER_SUITE_MAP[cipherSuite]; const fixedIv = Buffer.alloc(fixedIvLength, 0); const encKey = await tls_1.crypto.importKey(alg, key); const vectors = [ { plaintext: 'My cool API secret is "my name jeff". Please don\'t reveal it' } ]; const proofGenerator = await (0, zk_1.makeZkProofGenerator)({ logger: logger_1.logger, cipherSuite, }); for (const { plaintext } of vectors) { const plaintextArr = (0, tls_1.strToUint8Array)(plaintext); const { ciphertext, iv } = await (0, tls_1.encryptWrappedRecord)(plaintextArr, { key: encKey, iv: fixedIv, recordNumber: 0, recordHeaderOpts: { type: 'WRAPPED_RECORD' }, cipherSuite, version: cipherSuite.includes('ECDHE_') ? 'TLS1_2' : 'TLS1_3', }); const packet = { type: 'ciphertext', encKey, iv, recordNumber: 0, plaintext: plaintextArr, ciphertext, fixedIv: new Uint8Array(0), data: ciphertext }; await proofGenerator.addPacketToProve(packet, { type: 'zk', redactedPlaintext: plaintextArr, }, () => { }); await proofGenerator.generateProofs(); } benchmarkRes = benchmarkRes + `Benchmark ${alg} ok. Took ${Date.now() - now} ms \n`; } logger_1.logger.info(benchmarkRes); return benchmarkRes; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmVuY2htYXJrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2JlbmNobWFyay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSw4QkErRUM7QUFoR0QsOENBSzZCO0FBRTdCLDZDQUF5QztBQUN6QyxxQ0FBbUQ7QUFHbkQsTUFBTSxnQkFBZ0IsR0FBa0I7SUFDdkMsOEJBQThCO0lBQzlCLHlDQUF5QztJQUN6Qyx3QkFBd0I7Q0FDeEIsQ0FBQTtBQUVNLEtBQUssVUFBVSxTQUFTO0lBRTlCLElBQUksWUFBWSxHQUFHLEVBQUUsQ0FBQTtJQUNyQixLQUFJLE1BQU0sV0FBVyxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFFM0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBRXRCLE1BQU0sR0FBRyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQzNDLENBQUMsQ0FBQyxtQkFBbUI7WUFDckIsQ0FBQyxDQUFDLENBQ0QsV0FBVyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7Z0JBQ2xDLENBQUMsQ0FBQyxhQUFhO2dCQUNmLENBQUMsQ0FBQyxhQUFhLENBQ2hCLENBQUE7UUFDRixNQUFNLFNBQVMsR0FBRyxHQUFHLEtBQUssYUFBYSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQTtRQUNqRCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUN0QyxNQUFNLEVBQ0wsUUFBUSxFQUFFLGFBQWEsR0FDdkIsR0FBRyxnQ0FBMEIsQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUMzQyxNQUFNLE9BQU8sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQTtRQUU5QyxNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFBO1FBQy9DLE1BQU0sT0FBTyxHQUFHO1lBQ2Y7Z0JBQ0MsU0FBUyxFQUFFLCtEQUErRDthQUMxRTtTQUNELENBQUE7UUFFRCxNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUEseUJBQW9CLEVBQUM7WUFDakQsTUFBTSxFQUFOLGVBQU07WUFDTixXQUFXO1NBQ1gsQ0FBQyxDQUFBO1FBQ0YsS0FBSSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksT0FBTyxFQUFFLENBQUM7WUFDcEMsTUFBTSxZQUFZLEdBQUcsSUFBQSxxQkFBZSxFQUFDLFNBQVMsQ0FBQyxDQUFBO1lBRS9DLE1BQU0sRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLEdBQUcsTUFBTSxJQUFBLDBCQUFvQixFQUNwRCxZQUFZLEVBQ1o7Z0JBQ0MsR0FBRyxFQUFFLE1BQU07Z0JBQ1gsRUFBRSxFQUFFLE9BQU87Z0JBQ1gsWUFBWSxFQUFFLENBQUM7Z0JBQ2YsZ0JBQWdCLEVBQUU7b0JBQ2pCLElBQUksRUFBRSxnQkFBZ0I7aUJBQ3RCO2dCQUNELFdBQVc7Z0JBQ1gsT0FBTyxFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO29CQUN0QyxDQUFDLENBQUMsUUFBUTtvQkFDVixDQUFDLENBQUMsUUFBUTthQUNYLENBQ0QsQ0FBQTtZQUVELE1BQU0sTUFBTSxHQUFzQjtnQkFDakMsSUFBSSxFQUFFLFlBQVk7Z0JBQ2xCLE1BQU07Z0JBQ04sRUFBRTtnQkFDRixZQUFZLEVBQUUsQ0FBQztnQkFDZixTQUFTLEVBQUUsWUFBWTtnQkFDdkIsVUFBVTtnQkFDVixPQUFPLEVBQUUsSUFBSSxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUMxQixJQUFJLEVBQUUsVUFBVTthQUNoQixDQUFBO1lBRUQsTUFBTSxjQUFjLENBQUMsZ0JBQWdCLENBQ3BDLE1BQU0sRUFDTjtnQkFDQyxJQUFJLEVBQUUsSUFBSTtnQkFDVixpQkFBaUIsRUFBQyxZQUFZO2FBQzlCLEVBQ0QsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUNSLENBQUE7WUFDRCxNQUFNLGNBQWMsQ0FBQyxjQUFjLEVBQUUsQ0FBQTtRQUV0QyxDQUFDO1FBRUQsWUFBWSxHQUFHLFlBQVksR0FBRyxhQUFhLEdBQUcsYUFBYSxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxRQUFRLENBQUE7SUFDcEYsQ0FBQztJQUVELGVBQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDekIsT0FBTyxZQUFZLENBQUE7QUFDcEIsQ0FBQyJ9