orbitdb/test/utils/custom-test-keystore.js
2019-02-22 14:06:05 +00:00

52 lines
909 B
JavaScript

const EC = require('elliptic').ec
const ec = new EC('secp256k1')
/**
* A custom keystore example
*/
class CustomTestKeystore {
constructor (storage) {
// Use just one key throughout the keystore
// for mock purposes
this.key = this.createKey()
}
hasKey () {
return this.key !== undefined ? true : false
}
createKey (id) {
const key = ec.genKeyPair()
const keyPair = {
public: {
marshal: () => key.getPublic('hex')
},
priv: key.getPrivate('hex'),
privEnc: 'hex',
pubEnc: 'hex',
}
return keyPair
}
getKey (id) {
return this.key
}
sign (key, data) {
return Promise.resolve('<signature>')
}
verify (signature, publicKey, data) {
return Promise.resolve(true)
}
}
module.exports = (LocalStorage, mkdir) => {
return {
create: (directory) => {
return new CustomTestKeystore()
}
}
}