feat: use webcrypto in favor of node-forge

BREAKING CHANGE: generateKeyPair is now async
This commit is contained in:
Friedel Ziegelmayer
2016-09-13 13:23:11 +02:00
parent 73a5258876
commit 08c5df5e79
32 changed files with 2728 additions and 334 deletions

47
benchmarks/rsa.js Normal file
View File

@ -0,0 +1,47 @@
'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.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
})