summaryrefslogtreecommitdiff
path: root/test/fixtures/crypto-timing-safe-equal-benchmark-func.js
blob: 96470e3e4434a8cce9c8479e205b64e48de59b9f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'use strict';

const assert = require('assert');
module.exports = (compareFunc, firstBufFill, secondBufFill, bufSize) => {
  const firstBuffer = Buffer.alloc(bufSize, firstBufFill);
  const secondBuffer = Buffer.alloc(bufSize, secondBufFill);

  const startTime = process.hrtime();
  const result = compareFunc(firstBuffer, secondBuffer);
  const endTime = process.hrtime(startTime);

  // Ensure that the result of the function call gets used, so it doesn't
  // get discarded due to engine optimizations.
  assert.strictEqual(result, firstBufFill === secondBufFill);

  return endTime[0] * 1e9 + endTime[1];
};