@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
JavaScript
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
;