mirror of
https://github.com/fluencelabs/js-libp2p-crypto
synced 2025-07-31 08:52:15 +00:00
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
This commit is contained in:
@@ -10,16 +10,11 @@ const secrets = []
|
||||
const curves = ['P-256', 'P-384', 'P-521']
|
||||
|
||||
curves.forEach((curve) => {
|
||||
suite.add(`ephemeral key with secrect ${curve}`, (d) => {
|
||||
crypto.keys.generateEphemeralKeyPair('P-256', (err, res) => {
|
||||
if (err) { throw err }
|
||||
res.genSharedKey(res.key, (err, secret) => {
|
||||
if (err) { throw err }
|
||||
secrets.push(secret)
|
||||
|
||||
d.resolve()
|
||||
})
|
||||
})
|
||||
suite.add(`ephemeral key with secrect ${curve}`, async (d) => {
|
||||
const res = await crypto.keys.generateEphemeralKeyPair('P-256')
|
||||
const secret = await res.genSharedKey(res.key)
|
||||
secrets.push(secret)
|
||||
d.resolve()
|
||||
}, { defer: true })
|
||||
})
|
||||
|
||||
|
@@ -2,7 +2,6 @@
|
||||
'use strict'
|
||||
|
||||
const Benchmark = require('benchmark')
|
||||
const async = require('async')
|
||||
|
||||
const crypto = require('../src')
|
||||
|
||||
@@ -13,11 +12,9 @@ const keys = []
|
||||
const ciphers = ['AES-128', 'AES-256', 'Blowfish']
|
||||
const hashes = ['SHA1', 'SHA256', 'SHA512']
|
||||
|
||||
async.waterfall([
|
||||
(cb) => crypto.keys.generateEphemeralKeyPair('P-256', cb),
|
||||
(res, cb) => res.genSharedKey(res.key, cb)
|
||||
], (err, secret) => {
|
||||
if (err) { throw err }
|
||||
;(async () => {
|
||||
const res = await crypto.keys.generateEphemeralKeyPair('P-256')
|
||||
const secret = await res.genSharedKey(res.key)
|
||||
|
||||
ciphers.forEach((cipher) => hashes.forEach((hash) => {
|
||||
setup(cipher, hash, secret)
|
||||
@@ -26,15 +23,12 @@ async.waterfall([
|
||||
suite
|
||||
.on('cycle', (event) => console.log(String(event.target)))
|
||||
.run({ async: true })
|
||||
})
|
||||
})()
|
||||
|
||||
function setup (cipher, hash, secret) {
|
||||
suite.add(`keyStretcher ${cipher} ${hash}`, (d) => {
|
||||
crypto.keys.keyStretcher(cipher, hash, secret, (err, k) => {
|
||||
if (err) { throw err }
|
||||
|
||||
keys.push(k)
|
||||
d.resolve()
|
||||
})
|
||||
suite.add(`keyStretcher ${cipher} ${hash}`, async (d) => {
|
||||
const k = await crypto.keys.keyStretcher(cipher, hash, secret)
|
||||
keys.push(k)
|
||||
d.resolve()
|
||||
}, { defer: true })
|
||||
}
|
||||
|
@@ -10,30 +10,24 @@ 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()
|
||||
})
|
||||
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', (d) => {
|
||||
suite.add('sign and verify', async (d) => {
|
||||
const key = keys[0]
|
||||
const text = key.genSecret()
|
||||
|
||||
key.sign(text, (err, sig) => {
|
||||
if (err) { throw err }
|
||||
const sig = await key.sign(text)
|
||||
const res = await key.public.verify(text, sig)
|
||||
|
||||
key.public.verify(text, sig, (err, res) => {
|
||||
if (err) { throw err }
|
||||
if (res !== true) { throw new Error('failed to verify') }
|
||||
d.resolve()
|
||||
})
|
||||
})
|
||||
if (res !== true) { throw new Error('failed to verify') }
|
||||
d.resolve()
|
||||
}, {
|
||||
defer: true
|
||||
})
|
||||
|
Reference in New Issue
Block a user