orbitdb/test/utils/custom-test-keystore.js
2018-02-08 16:39:16 -02:00

54 lines
1007 B
JavaScript

const EC = require('elliptic').ec
const ec = new EC('secp256k1')
/**
* A custom keystore example
*/
class CustomTestKeystore {
constructor(signer) {
this.createKey();
}
createKey() {
const key = ec.genKeyPair()
this.key = ec.keyPair({
pub: key.getPublic('hex'),
priv: key.getPrivate('hex'),
privEnc: 'hex',
pubEnc: 'hex',
})
return this.key
}
getKey() {
return this.key
}
// TODO: check if this is really in use
generateKey() {
return Promise.resolve(this.createKey())
}
importPublicKey(key) {
return Promise.resolve(ec.keyFromPublic(key, 'hex'))
}
importPrivateKey(key) {
return Promise.resolve(ec.keyFromPrivate(key, 'hex'))
}
sign(key, data) {
const sig = ec.sign(data, key)
return Promise.resolve(sig.toDER('hex'))
}
verify(signature, key, data) {
let res = false
res = ec.verify(data, signature, key)
return Promise.resolve(res)
}
}
module.exports = new CustomTestKeystore()