JSON Web Keys (JWK) is a format specified in RFC7517 for storing RSA/EC/AES keys in a JSON based format. It can be used to import/export such keys in the browser using the new W3C WebCryptoAPI.
The jose
package makes it easy to read/write such keys
in R for use with JWT or any other functionality from the
openssl
package.
Linking to: OpenSSL 3.0.13 30 Jan 2024
{
"kty": "EC",
"crv": "P-256",
"x": "zdo16OQZZA330ezUIZCvvNrmvFn1AgkkVYVeFqJz9JQ",
"y": "gRSeV_mmrj2ZrxMSGZV1LnWxBFJesLaYqBnTgaOJj-c",
"d": "sDzk3Ok2WI76VOkkcWJ-GKi3jCuOq8GL4KXpsNMYBhA"
}
{
"kty": "EC",
"crv": "P-256",
"x": "zdo16OQZZA330ezUIZCvvNrmvFn1AgkkVYVeFqJz9JQ",
"y": "gRSeV_mmrj2ZrxMSGZV1LnWxBFJesLaYqBnTgaOJj-c"
}
[256-bit ecdsa public key]
md5: 92a5675ada11c18b78734f8fa29e6ccf
sha256: 2352e97b4d836e8a1d6794041fd4a68d5f757aa5a61e9bad8c8f95ccbdf4b6ed
[1] TRUE
JWT also specifies a format for encoding AES/HMAC secrets. Such secret keys are simply raw bytes.
[1] 50 8a f7 5c 2b d4 14 52 43 5c 91 5a 38 0e 19 64
{"kty":"oct","k":"UIr3XCvUFFJDXJFaOA4ZZA"}
[1] 50 8a f7 5c 2b d4 14 52 43 5c 91 5a 38 0e 19 64