'use strict' const Benchmark = require('benchmark') const crypto = require('../src') const suite = new Benchmark.Suite('rsa') const keys = [] const bits = [1024, 2048, 4096] bits.forEach((bit) => { suite.add(`generateKeyPair ${bit}bits`, (d) => { crypto.keys.generateKeyPair('RSA', bit, (err, key) => { if (err) { throw err } keys.push(key) d.resolve() }) }, { defer: true }) }) suite.add('sign and verify', (d) => { const key = keys[0] const text = key.genSecret() key.sign(text, (err, sig) => { if (err) { throw err } key.public.verify(text, sig, (err, res) => { if (err) { throw err } if (res !== true) { throw new Error('failed to verify') } d.resolve() }) }) }, { defer: true }) suite .on('cycle', (event) => console.log(String(event.target))) .run({async: true})