Javascript Object Signing and Encryption (jose)
Create Private Signing Key
transmute key generate \
--alg ES384 \
--output examples/jose/private.signing.jwk.json
Export Public Verification Key
transmute key export \
--input examples/jose/private.signing.jwk.json \
--output examples/jose/public.verifying.jwk.json
transmute key sign \
--issuer-key examples/jose/private.signing.jwk.json \
--input examples/jose/manifest.spdx.json \
--output examples/jose/manifest.spdx.jws.json
transmute key verify \
--verifier-key examples/jose/public.verifying.jwk.json \
--input examples/jose/manifest.spdx.json \
--signature examples/jose/manifest.spdx.jws.json \
--output examples/jose/manifest.spdx.jws.verified.json
transmute key generate \
--alg ECDH-ES+A128KW \
--output examples/jose/private.decryption.jwk.json
transmute key export \
--input examples/jose/private.decryption.jwk.json \
--output examples/jose/public.encryption.jwk.json
Encrypt to Recipient Public Key
transmute key encrypt \
--recipient examples/jose/public.encryption.jwk.json \
--input examples/jose/manifest.spdx.json \
--output examples/jose/manifest.spdx.jwe.json
Decrypt with Recipient Private Key
transmute key decrypt \
--recipient examples/jose/private.decryption.jwk.json \
--input examples/jose/manifest.spdx.jwe.json \
--output examples/jose/manifest.spdx.jwe.decrypted.json