Redis-Key-Store
![Code Smells](https://sonarcloud.io/api/project_badges/measure?project=bryopsida_redis-key-store&metric=code_smells)
What is this?
This is a implenetation of @bryopsida/key-store using redis as a backing store for use in distributed systems.
How do I use it?
import { Redis } from 'ioredis'
import { describe, expect, it } from '@jest/globals'
import { randomBytes, randomUUID } from 'crypto'
import pino from 'pino'
const redisClient: Redis = new Redis(6379, 'localhost')
let password: Buffer
let salt: Buffer
let context: Buffer
const logger: Logger = pino()
const keyPrefix: string = 'keys'
const store = new RedisKeyStore(
logger,
redisClient,
keyPrefix,
() => Promise.resolve(password),
() => Promise.resolve(salt),
() => Promise.resolve(context)
)
it('can manage a DEK', async () => {
const dek = randomBytes(32)
const id = randomUUID()
await keyStore.saveSealedDataEncKey(id, dek)
const fetchedDek = await keyStore.fetchSealedDataEncKey(id)
expect(fetchedDek).toEqual(dek)
await keyStore.destroySealedDataEncKey(id)
})