2018-11-01 14:55:52 +01:00
|
|
|
/* eslint-disable no-console */
|
2016-09-13 13:23:11 +02:00
|
|
|
'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) => {
|
2019-07-10 17:15:26 +01:00
|
|
|
suite.add(`generateKeyPair ${bit}bits`, async (d) => {
|
|
|
|
const key = await crypto.keys.generateKeyPair('RSA', bit)
|
|
|
|
keys.push(key)
|
|
|
|
d.resolve()
|
2016-09-13 13:23:11 +02:00
|
|
|
}, {
|
|
|
|
defer: true
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
2019-07-10 17:15:26 +01:00
|
|
|
suite.add('sign and verify', async (d) => {
|
2016-09-13 13:23:11 +02:00
|
|
|
const key = keys[0]
|
|
|
|
const text = key.genSecret()
|
|
|
|
|
2019-07-10 17:15:26 +01:00
|
|
|
const sig = await key.sign(text)
|
|
|
|
const res = await key.public.verify(text, sig)
|
2016-09-13 13:23:11 +02:00
|
|
|
|
2019-07-10 17:15:26 +01:00
|
|
|
if (res !== true) { throw new Error('failed to verify') }
|
|
|
|
d.resolve()
|
2016-09-13 13:23:11 +02:00
|
|
|
}, {
|
|
|
|
defer: true
|
|
|
|
})
|
|
|
|
|
2017-09-05 15:28:43 +02:00
|
|
|
suite
|
|
|
|
.on('cycle', (event) => console.log(String(event.target)))
|
2019-01-03 08:13:07 -08:00
|
|
|
.run({ async: true })
|