Schlüsseltypen (kty): EC mit crv (P-256, P-384, P-521, secp256k1), x und y; RSA mit n und e (sowie d, p, q, dp, dq, qi bei privaten Schlüsseln); OKP (RFC 8037) mit crv Ed25519, Ed448, X25519 oder X448 und x; oct mit k für symmetrische Schlüssel. Die Werte sind base64url-kodierte Big-Endian-Ganzzahlen oder Bytefolgen; Koordinaten haben eine feste Länge (32 Byte bei P-256), daher macht das Entfernen führender Nullbytes Schlüssel unbrauchbar.
Optionale Metadaten: kid, alg (legt den Schlüssel auf einen Algorithmus fest), use (sig oder enc), key_ops sowie x5c oder x5t#S256 als Verweise auf Zertifikate. Ein privater JWK enthält d; veröffentliche dieses Feld nie und entferne es, bevor du einen Schlüssel in ein JWKS aufnimmst. Die Tools dieser Website lehnen JWKs mit d überall dort ab, wo nur ein öffentlicher Schlüssel gebraucht wird.
Konvertierungen von und nach PEM sind für das Schlüsselmaterial verlustfrei; das erledigen node:crypto (createPublicKey und export mit format: "jwk"), der Import und Export im Format jwk von WebCrypto und der JWK-Konverter.