Tipos de clave (kty): EC con crv (P-256, P-384, P-521, secp256k1), x e y; RSA con n y e (y d, p, q, dp, dq, qi en las claves privadas); OKP (RFC 8037) con crv Ed25519, Ed448, X25519 o X448 y x; oct con k para claves simétricas. Los valores son enteros big-endian o cadenas de bytes codificados en base64url; las coordenadas tienen longitud fija (32 bytes para P-256), así que eliminar los bytes cero iniciales rompe las claves.
Metadatos opcionales: kid, alg (fija la clave a un solo algoritmo), use (sig o enc), key_ops y los enlaces a certificados x5c o x5t#S256. Una JWK privada contiene d: no la publiques nunca y quita ese miembro antes de incluir la clave en un JWKS. Las herramientas de este sitio rechazan las JWK con d siempre que solo se necesita una clave pública.
Las conversiones a PEM y desde PEM no pierden nada del material de la clave; las hacen node:crypto (createPublicKey y export con format: "jwk"), la importación y exportación jwk de WebCrypto y el conversor de JWK.