Alan Shaw ad7107233e feat: refactor to use async/await (#131)
BREAKING CHANGE: API refactored to use async/await

feat: WIP use async await
fix: passing tests
chore: update travis node.js versions
fix: skip ursa optional tests on windows
fix: benchmarks
docs: update docs
fix: remove broken and intested private key decrypt
chore: update deps
2019-07-10 17:15:26 +01:00

38 lines
791 B
JavaScript

/* eslint-disable no-console */
'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`, async (d) => {
const key = await crypto.keys.generateKeyPair('RSA', bit)
keys.push(key)
d.resolve()
}, {
defer: true
})
})
suite.add('sign and verify', async (d) => {
const key = keys[0]
const text = key.genSecret()
const sig = await key.sign(text)
const res = await key.public.verify(text, sig)
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 })