mirror of
https://github.com/fluencelabs/js-libp2p-crypto
synced 2025-03-15 19:50:58 +00:00
feat: skip nextTick in nodeify (#103)
This commit is contained in:
parent
1b6a070fa8
commit
f20267b962
@ -35,14 +35,13 @@
|
|||||||
"browserify-aes": "^1.0.6",
|
"browserify-aes": "^1.0.6",
|
||||||
"keypair": "^1.0.1",
|
"keypair": "^1.0.1",
|
||||||
"libp2p-crypto-secp256k1": "~0.2.1",
|
"libp2p-crypto-secp256k1": "~0.2.1",
|
||||||
"nodeify": "^1.0.1",
|
"multihashing-async": "~0.4.6",
|
||||||
"pem-jwk": "^1.5.1",
|
"pem-jwk": "^1.5.1",
|
||||||
"protocol-buffers": "^3.2.1",
|
"protocol-buffers": "^3.2.1",
|
||||||
"rsa-pem-to-jwk": "^1.1.3",
|
"rsa-pem-to-jwk": "^1.1.3",
|
||||||
"safe-buffer": "^5.1.1",
|
"safe-buffer": "^5.1.1",
|
||||||
"tweetnacl": "^1.0.0",
|
"tweetnacl": "^1.0.0",
|
||||||
"webcrypto-shim": "github:dignifiedquire/webcrypto-shim#master",
|
"webcrypto-shim": "github:dignifiedquire/webcrypto-shim#master"
|
||||||
"multihashing-async": "~0.4.6"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"aegir": "^11.0.2",
|
"aegir": "^11.0.2",
|
||||||
@ -79,4 +78,4 @@
|
|||||||
"greenkeeper[bot] <greenkeeper[bot]@users.noreply.github.com>",
|
"greenkeeper[bot] <greenkeeper[bot]@users.noreply.github.com>",
|
||||||
"nikuda <nikuda@gmail.com>"
|
"nikuda <nikuda@gmail.com>"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
const nodeify = require('nodeify')
|
const nodeify = require('../nodeify')
|
||||||
const Buffer = require('safe-buffer').Buffer
|
const Buffer = require('safe-buffer').Buffer
|
||||||
|
|
||||||
const crypto = require('../webcrypto.js')()
|
const crypto = require('../webcrypto.js')()
|
||||||
@ -12,6 +12,11 @@ const hashTypes = {
|
|||||||
SHA512: 'SHA-512'
|
SHA512: 'SHA-512'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const sign = (key, data, cb) => {
|
||||||
|
nodeify(crypto.subtle.sign({name: 'HMAC'}, key, data)
|
||||||
|
.then((raw) => Buffer.from(raw)), cb)
|
||||||
|
}
|
||||||
|
|
||||||
exports.create = function (hashType, secret, callback) {
|
exports.create = function (hashType, secret, callback) {
|
||||||
const hash = hashTypes[hashType]
|
const hash = hashTypes[hashType]
|
||||||
|
|
||||||
@ -27,8 +32,7 @@ exports.create = function (hashType, secret, callback) {
|
|||||||
).then((key) => {
|
).then((key) => {
|
||||||
return {
|
return {
|
||||||
digest (data, cb) {
|
digest (data, cb) {
|
||||||
nodeify(crypto.subtle.sign({name: 'HMAC'}, key, data)
|
sign(key, data, cb)
|
||||||
.then((raw) => Buffer.from(raw)), cb)
|
|
||||||
},
|
},
|
||||||
length: lengths[hashType]
|
length: lengths[hashType]
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
const webcrypto = require('../webcrypto.js')()
|
const webcrypto = require('../webcrypto.js')()
|
||||||
const nodeify = require('nodeify')
|
const nodeify = require('../nodeify')
|
||||||
const BN = require('asn1.js').bignum
|
const BN = require('asn1.js').bignum
|
||||||
const Buffer = require('safe-buffer').Buffer
|
const Buffer = require('safe-buffer').Buffer
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
'use strict'
|
'use strict'
|
||||||
|
|
||||||
const nodeify = require('nodeify')
|
const nodeify = require('../nodeify')
|
||||||
const Buffer = require('safe-buffer').Buffer
|
const Buffer = require('safe-buffer').Buffer
|
||||||
|
|
||||||
const webcrypto = require('../webcrypto.js')()
|
const webcrypto = require('../webcrypto.js')()
|
||||||
|
11
src/nodeify.js
Normal file
11
src/nodeify.js
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
'use strict'
|
||||||
|
|
||||||
|
// Based on npmjs.com/nodeify but without additional `nextTick` calls
|
||||||
|
// to keep the overhead low
|
||||||
|
module.exports = function nodeify (promise, cb) {
|
||||||
|
return promise.then((res) => {
|
||||||
|
cb(null, res)
|
||||||
|
}, (err) => {
|
||||||
|
cb(err)
|
||||||
|
})
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user