Skip to content

Data signing and verification for rotating credentials and algorithms

License

Notifications You must be signed in to change notification settings

serviejs/keysign

Repository files navigation

Keysign

NPM version NPM downloads Build status Test coverage

Data signing and verification for rotating credentials and algorithms.

(Inspired by keygrip and API compatible with keycrypt).

Installation

npm install keysign --save

Usage

Signs a Buffer using the first key (secret) and returns the data. Upon decoding, checks each secret for a valid HMAC and returns the plain data (or undefined if nothing matches).

import { Keysign } from 'keysign'

const secrets = [Buffer.from('secret', 'utf8')]
const keysign = new Keysign(secrets)

const raw = Buffer.from('some data', 'utf8')
const signed = keysign.encode(raw)
const verified = keysign.decode(encrypted)

assert.equal(verified, raw)

TypeScript

This project is using TypeScript and publishes the definitions to NPM.

License

Apache 2.0