Skip to content

Repository files navigation

KeyChain for use with Web Cryptography API in Node.js

Usage

Install the package

$ npm install https://github.com/anvilresearch/keychain.git

Load the module

constKeyChain=require('keychain')

Create a new instance by passing a descriptive object to the KeyChain constructor. This object can have any naming or nesting scheme, as long as the last nested object contains parameters describing key generation. At a bare minimum, this must include an alg property with a JWA algorithm name as its value. Currently, RS256, RS384, and RS512 are supported.

letkeys=newKeyChain({a: {b: {alg: 'RS256'}},c: {d: {alg: 'RS256'}},e: {f: {alg: 'RS256',modulusLength: 2048}// default is 4096})

This initialized a KeyChain instance but didn't generate keys. To generate keys according to the object passed to the keychain, call rotate(). The rotate() method returns a promise for the keychain.

keys.rotate()

Once keys have been generated, they can be accessed as CryptoKey or JWK objects, according to the object structure defined by the caller.

Access CryptoKey objects for Web Crypto API operations:

keys.a.b.privateKeykeys.a.b.publicKey

Access JWK objects:

keys.a.b.privateJwkkeys.a.b.publicJwk

Key rotation also generates a JWK Set in object and JSON form:

keys.jwks// JWK Set objectkeys.jwkSet// JWK Set JSON string

Running tests

Nodejs

$ npm test

MIT License

The MIT License

Copyright (c) 2016 Anvil Research, Inc. Copyright (c) 2017-2019 The Solid Project

About

KeyChain for use with Web Cryptography API in Node.js

Topics

Resources

Stars

5 stars

Watchers

10 watching

Forks

Releases

Packages

Used by

Contributors

Languages