# JWK Key Generator The `jwk-keygen` command line utility generates keypairs used for asymmetric encryption and signing algorithms in JSON Web Key (JWK) format. ## Usage The utility requires specification of both desired algorithm (`alg`) and key usage (`use`) to remind that same keypair should never be used both for encryption and signing. Algorithms are selected via the `--alg` flag, which influence the `alg` header. For JWE (`--use=enc`), `--alg` specifies the key management algorithm (e.g. `RSA-OAEP`). For JWS (`--use=sig`), `--alg` specifies the signature algorithm (e.g. `PS256`). Output file is determined by specified usage, algorithm and Key ID, e.g. `jwk-keygen --use=sig --alg=RS512 --kid=test` produces files `jwk_sig_RS512_test` and `jwk_sig_RS512_test.pub`. Keys are sent to stdout when no Key ID is specified: neither pre-defined nor random one. ## Examples ### RSA 2048 Generate RSA/2048 key for encryption and output to stdout. jwk-keygen --use enc --alg RSA-OAEP ### Custom key length Generate RSA/4096 key for signing and store to files. jwk-keygen --use sig --alg RS256 --bits 4096 --kid test