hypercore-encryption
Dyanmic Hypercore encryption provider
Usage
const HypercoreEncryption = require('hypercore-encryption')
const getEncryptionKey = async (id) => {
return {
id,
encryptionKey
}
}
const encryption = new HypercoreEncryption(getEncryptionKey)
const core = new Hypercore(storage, {
encryption: encryption.createEncryptionProvider({
transform (ctx, entropy, compat) {
return {
block: deriveBlockKey(entropy),
hash: deriveHashKey(entropy)
}
}
})
})
await core.ready()
await core.append('encrypt with key')
API
const enc = new HypercoreEncryption(getEncryptionKey)
Instantiate a new encryption provider.
Takes a hook with the signature:
async function getEncryptionKey (id) {
return {
id,
encryptionKey
}
}
const provider = enc.createEncryptionProvider({ transform, compat })
Create an encryption provider.
{
function transform (ctx, entropy, compat) {
return {
block,
hash,
blinding
}
},
function compat (ctx, index) {
}
}
See hypercore encryption for details on compat encryption.
enc.clear()
Clear any cached keys.
const { id, encryptionKey } = await enc.get(id)
Fetch the encryption key at id.
If -1 is passed as id, the latest available key will be returned.
License
Apache-2.0