Skip to content

phish108/node-jose-tools

Repository files navigation

node-jose-tools for JOSE key management, token signing and encryption

The Swiss-army knife tool for node-jose for handling JSON Web Tokens.

Overview

node-jose-tools provides a simple CLI through the jose command for JSON web-key (JWK) key and key store management as well as for handling JSON web-tokens (JWT) in, both, the signed and encrypted variants.

The jose command allows quick feature testing of node-jose functions.

node-jose-tools have started to learn better about the different features of node-jose. It also provides reference implementations to many of the underlying functions. The tools and functions are separated to allow easy extension and quick orientation for how the different library features work.

Supported platforms and node versions

node-jose-tools are tested with node versions 12, 13, 14, and 15 on linux (ubuntu), Windows, and macOS.

It is recommended to use node version 12 or higher, due to the much better performance of the cryptographic functions.

Installing

On the command line run npm install -g node-jose-tools.

Running

Open your favorite shell and type.

> jose TOOL [OPTIONS]

The following tools are supported:

Key management

  • addkey - add a new key to a jwks
  • newkey - create a new key (that can be used by addkey)
  • listkeys - list the key ids for all keys in a jwks
  • findkey - find a kid in a jwks
  • rmkey - remove a kid from a jwks
  • thumbprint - generate key thumbprints and key-ids
  • info - return basic information about a JWT without processing it
  • sign - creates and signs a JWS for a given payload
  • verify - verifies a JWS and return the payload
  • encrypt - encrypt a payload into a JWE
  • decrypt - decrypts a JWE and returns the payload
  • digest - computes a SHA-2 digest of the provided input

Documentation and Examples

Pro-tip Use the --help or -h flag to get the documentation directly on the command line.

The detailed documentation of the tools and plenty example application scenarios are available in the docs folder.

Reporting Bugs, Issues and Missing Features

Please, use github for reporting issues and bugs.

If a certain part of the JOSE specifications is not supported by node-jose, then these parts are also unsupported by this tool and not considered a bug.

License

This code is released under a MIT License. Please refer to the LICENSE file for more details.