mirror of
https://github.com/orbitdb/orbitdb.git
synced 2025-06-07 06:36:38 +00:00

pointing to fix/store-performance branch fix:typo fix: indentation test: Changing test to reflect new orbit-store default Update package.json test: updating tests update localstorage-level-migration dep experiment:Moving keystore up ALL way orbitdb storage adapter mark 1 fix: more passing tests more fixes chore:package-lock.json reverting mkdir.c for now package-lock.json for node 10.13 fix: circleci fix: webpack fs updates disabling loadCache Moving storage adapter to its own thing tests: fixing up chore: long needed fixing More linting tests: fix up look sharp test: v0 failure only Reversting lint fixes fix v0-load test set cache heads fix: passing in storage no longer needed fix: removing artifact from previous merge fix: honor default keystore and pesky call-by-reference bug fix: removing directory arg from _addManifestToCache chore: package-lock fix: pending drop test removing directory option for individual dbs docs: removing directory options fix: removing line instead of commenting fix: moving storage setup to createInstance feat: Upgrading ipfs to 0.36 chore: package-log fix: restoring onlyHash workaround: removing memstore from replication tests fix: this.keystore.close and this.cache.close chore: removing eslint annotation chore: package-lock.json fix: passing preCreate in as option chore: package files Fixing package.json fixing replicate tests Fixing some tests Updating orbit-db-store dependency CircleCI updates - To be obviated via other PR Restoring ability to pass a custom directory to orbitdb.create More test fixes set identity tests fixed Fixing replication tests Temporarily disabling concurrency tests Closing keystore in identities test Restoring test:all package.json More replicate test fixes successful make rebuild Linting fixes
81 lines
1.6 KiB
JavaScript
81 lines
1.6 KiB
JavaScript
const EC = require('elliptic').ec
|
|
const ec = new EC('secp256k1')
|
|
const IdentityProvider = require('orbit-db-identity-provider/src/identity-provider-interface')
|
|
/**
|
|
* 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)
|
|
}
|
|
|
|
getPublic (key) {
|
|
return key.public.marshal()
|
|
}
|
|
}
|
|
|
|
class CustomIdProvider extends IdentityProvider {
|
|
constructor (options = {}) {
|
|
super()
|
|
this._keystore = options.keystore || new CustomTestKeystore()
|
|
}
|
|
|
|
// Returns the type of the identity provider
|
|
static get type () { return 'custom' }
|
|
|
|
async getId (options = {}) {
|
|
return 'id'
|
|
}
|
|
|
|
async signIdentity (data, options = {}) {
|
|
const keystore = this._keystore
|
|
return keystore.sign(null, data)
|
|
}
|
|
|
|
static async verifyIdentity (identity) {
|
|
// Verify that identity was signed by the ID
|
|
return true
|
|
}
|
|
}
|
|
|
|
module.exports = (LocalStorage, mkdir) => {
|
|
return {
|
|
create: (directory) => {
|
|
return new CustomTestKeystore()
|
|
},
|
|
identityProvider: CustomIdProvider
|
|
}
|
|
}
|