mirror of
https://github.com/fluencelabs/js-libp2p-crypto
synced 2025-06-20 04:26:37 +00:00
feat: use webcrypto in favor of node-forge
BREAKING CHANGE: generateKeyPair is now async
This commit is contained in:
47
benchmarks/rsa.js
Normal file
47
benchmarks/rsa.js
Normal 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
|
||||
})
|
Reference in New Issue
Block a user