%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
'use strict'; const common = require('../common.js'); const assert = require('assert'); const { hkdf, hkdfSync } = require('crypto'); const bench = common.createBenchmark(main, { sync: [0, 1], size: [10, 64, 1024], key: ['a', 'secret', 'this-is-a-much-longer-secret'], salt: ['', 'salt'], info: ['', 'info'], hash: ['sha256', 'sha512'], n: [1e3], }); function measureSync(n, size, salt, info, hash, key) { bench.start(); for (let i = 0; i < n; ++i) hkdfSync(hash, key, salt, info, size); bench.end(n); } function measureAsync(n, size, salt, info, hash, key) { let remaining = n; function done(err) { assert.ifError(err); if (--remaining === 0) bench.end(n); } bench.start(); for (let i = 0; i < n; ++i) hkdf(hash, key, salt, info, size, done); } function main({ n, sync, size, salt, info, hash, key }) { if (sync) measureSync(n, size, salt, info, hash, key); else measureAsync(n, size, salt, info, hash, key); }