Skip to content
This repository has been archived by the owner on Jun 15, 2023. It is now read-only.

Commit

Permalink
Revert "chore: update deps (#40)"
Browse files Browse the repository at this point in the history
This reverts commit b6d5313.
  • Loading branch information
vasco-santos committed Dec 18, 2019
1 parent be63323 commit 6b9516c
Show file tree
Hide file tree
Showing 4 changed files with 55 additions and 23 deletions.
14 changes: 7 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@
"homepage": "https://github.com/libp2p/js-libp2p-keychain#readme",
"dependencies": {
"err-code": "^2.0.0",
"interface-datastore": "^0.8.0",
"libp2p-crypto": "^0.17.1",
"merge-options": "^2.0.0",
"interface-datastore": "^0.7.0",
"libp2p-crypto": "^0.16.2",
"merge-options": "^1.0.1",
"node-forge": "^0.9.1",
"sanitize-filename": "^1.6.1"
},
Expand All @@ -52,13 +52,13 @@
"chai": "^4.2.0",
"chai-string": "^1.5.0",
"datastore-fs": "^0.9.0",
"datastore-level": "^0.14.0",
"datastore-level": "^0.12.1",
"dirty-chai": "^2.0.1",
"level": "^6.0.0",
"level": "^5.0.1",
"multihashes": "^0.4.15",
"peer-id": "^0.13.5",
"peer-id": "^0.12.2",
"promisify-es6": "^1.0.3",
"rimraf": "^3.0.0"
"rimraf": "^2.6.3"
},
"contributors": [
"Alan Shaw <[email protected]>",
Expand Down
42 changes: 32 additions & 10 deletions src/keychain.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ const sanitize = require('sanitize-filename')
const mergeOptions = require('merge-options')
const crypto = require('libp2p-crypto')
const DS = require('interface-datastore')
const promisify = require('promisify-es6')
const CMS = require('./cms')
const errcode = require('err-code')

Expand Down Expand Up @@ -205,9 +206,16 @@ class Keychain {

let keyInfo
try {
const keypair = await crypto.keys.generateKeyPair(type, size)
const kid = await keypair.id()
const pem = await keypair.export(this._())
const keypair = await promisify(crypto.keys.generateKeyPair, {
context: crypto.keys
})(type, size)

const kid = await promisify(keypair.id, {
context: keypair
})()
const pem = await promisify(keypair.export, {
context: keypair
})(this._())
keyInfo = {
name: name,
id: kid
Expand Down Expand Up @@ -359,8 +367,12 @@ class Keychain {
try {
const res = await this.store.get(dsname)
const pem = res.toString()
const privateKey = await crypto.keys.import(pem, this._())
return privateKey.export(password)
const privateKey = await promisify(crypto.keys.import, {
context: crypto.keys
})(pem, this._())
return promisify(privateKey.export, {
context: privateKey
})(password)
} catch (err) {
return throwDelayed(err)
}
Expand Down Expand Up @@ -388,15 +400,21 @@ class Keychain {

let privateKey
try {
privateKey = await crypto.keys.import(pem, password)
privateKey = await promisify(crypto.keys.import, {
context: crypto.keys
})(pem, password)
} catch (err) {
return throwDelayed(errcode(new Error('Cannot read the key, most likely the password is wrong'), 'ERR_CANNOT_READ_KEY'))
}

let kid
try {
kid = await privateKey.id()
pem = await privateKey.export(this._())
kid = await promisify(privateKey.id, {
context: privateKey
})()
pem = await promisify(privateKey.export, {
context: privateKey
})(this._())
} catch (err) {
return throwDelayed(err)
}
Expand Down Expand Up @@ -428,8 +446,12 @@ class Keychain {
if (exists) return throwDelayed(errcode(new Error(`Key '${name}' already exists`), 'ERR_KEY_ALREADY_EXISTS'))

try {
const kid = await privateKey.id()
const pem = await privateKey.export(this._())
const kid = await promisify(privateKey.id, {
context: privateKey
})()
const pem = await promisify(privateKey.export, {
context: privateKey
})(this._())
const keyInfo = {
name: name,
id: kid
Expand Down
3 changes: 2 additions & 1 deletion test/keychain.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ chai.use(require('dirty-chai'))
chai.use(require('chai-string'))
const Keychain = require('../')
const PeerId = require('peer-id')
const promisify = require('promisify-es6')

module.exports = (datastore1, datastore2) => {
describe('keychain', () => {
Expand Down Expand Up @@ -268,7 +269,7 @@ module.exports = (datastore1, datastore2) => {

before(async function () {
const encoded = Buffer.from(alicePrivKey, 'base64')
alice = await PeerId.createFromPrivKey(encoded)
alice = await promisify(PeerId.createFromPrivKey)(encoded)
})

it('private key can be imported', async () => {
Expand Down
19 changes: 14 additions & 5 deletions test/peerid.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ const multihash = require('multihashes')
const crypto = require('libp2p-crypto')
const rsaUtils = require('libp2p-crypto/src/keys/rsa-utils')
const rsaClass = require('libp2p-crypto/src/keys/rsa-class')
const promisify = require('promisify-es6')

const sample = {
id: '122019318b6e5e0cf93a2314bf01269a2cc23cd3dcd452d742cdb9379d8646f6e4a9',
Expand All @@ -23,7 +24,7 @@ describe('peer ID', () => {

before(async () => {
const encoded = Buffer.from(sample.privKey, 'base64')
peer = await PeerId.createFromPrivKey(encoded)
peer = await promisify(PeerId.createFromPrivKey)(encoded)
})

it('decoded public key', async () => {
Expand All @@ -34,14 +35,18 @@ describe('peer ID', () => {

// get protobuf version of the private key
const privateKeyProtobuf = peer.marshalPrivKey()
const key = await crypto.keys.unmarshalPrivateKey(privateKeyProtobuf)
const key = await promisify(crypto.keys.unmarshalPrivateKey, {
context: crypto.keys
})(privateKeyProtobuf)
expect(key).to.exist()
})

it('encoded public key with DER', async () => {
const jwk = rsaUtils.pkixToJwk(publicKeyDer)
const rsa = new rsaClass.RsaPublicKey(jwk)
const keyId = await rsa.hash()
const keyId = await promisify(rsa.hash, {
context: rsa
})()
const kids = multihash.toB58String(keyId)
expect(kids).to.equal(peer.toB58String())
})
Expand All @@ -55,15 +60,19 @@ describe('peer ID', () => {
kid: '2011-04-29'
}
const rsa = new rsaClass.RsaPublicKey(jwk)
const keyId = await rsa.hash()
const keyId = await promisify(rsa.hash, {
context: rsa
})()
const kids = multihash.toB58String(keyId)
expect(kids).to.equal(peer.toB58String())
})

it('decoded private key', async () => {
// get protobuf version of the private key
const privateKeyProtobuf = peer.marshalPrivKey()
const key = await crypto.keys.unmarshalPrivateKey(privateKeyProtobuf)
const key = await promisify(crypto.keys.unmarshalPrivateKey, {
context: crypto.keys
})(privateKeyProtobuf)
expect(key).to.exist()
})
})

0 comments on commit 6b9516c

Please sign in to comment.