node-jose-tools for JOSE key management, token signing and encryption
The Swiss-army knife tool for node-jose for handling JSON Web Tokens.
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.
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 8, 10, 12, 13, and 14 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.
On the command line run
npm install -g node-jose-tools.
Open your favorite shell and type.
> jose TOOL [OPTIONS]
The following tools are supported:
- 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
-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.
This code is released under a MIT License. Please refer to the LICENSE file for more details.