AZ Tools

Decodificador CBOR (notación diagnóstica)

Desarrollo

CBOR (Representación Concisa de Objetos Binarios, RFC 8949) es un formato binario compacto que usan WebAuthn/FIDO2, COSE, el trabajo de certificados C509 y muchos protocolos IoT — pero como bytes en bruto es ilegible. Pega los bytes como hex o base64 y esta herramienta los decodifica a notación diagnóstica CBOR, la forma legible estándar de la especificación: enteros y bignums, cadenas de bytes como h'…', cadenas de texto, arrays y mapas anidados, valores etiquetados como 0("2013-03-21T20:04:00Z"), los valores simples false/true/null/undefined, flotantes half/single/double y cadenas, arrays y mapas de longitud indefinida escritos con el marcador _. Valida sobre la marcha y avisa de entrada truncada o de bytes sobrantes tras el primer elemento de datos. El decodificador está comprobado contra toda la tabla de ejemplos del Apéndice A de RFC 8949. Todo corre localmente; no se sube nada.

La salida es notación diagnóstica de RFC 8949: cadenas h'…', 1 vs 1.0, tag(contenido) y _ para longitud indefinida.

Cómo usar

  1. Elige si tu entrada es hex o base64 (también se acepta base64url).
  2. Pega los bytes CBOR.
  3. Lee la notación diagnóstica decodificada y cópiala.

Preguntas frecuentes

¿Qué es la notación diagnóstica?
Es la forma de texto legible de un elemento CBOR definida en RFC 8949 §8 — parecida a JSON pero capaz de expresar todo lo que CBOR puede: cadenas de bytes como h'…', enteros frente a flotantes (1 vs 1.0), etiquetas como número(contenido), los valores simples undefined y simple(n), y elementos de longitud indefinida con un guion bajo, p. ej. [_ 1, 2]. Es la forma estándar de mostrar lo que contiene un blob CBOR.
¿Cómo obtengo el hex de un valor CBOR?
Cualquier cosa que emita CBOR te da bytes: un attestationObject de WebAuthn, una COSE_Key o COSE_Sign1, una trama de sensor IoT, etc. Captura esos bytes y pégalos como hex (con o sin espacios o prefijo 0x) o base64. La herramienta ignora los espacios y acepta base64url.
¿Por qué muestra 1 y 1.0 de forma distinta?
CBOR distingue enteros de números de punto flotante a nivel de bytes, y la notación diagnóstica lo preserva: el entero uno es 1, mientras que el flotante es 1.0. Los flotantes de media precisión (2 bytes), simple (4) y doble (8) se decodifican a su valor exacto, incluidos NaN y ±Infinity.
¿Qué significan los 'bytes sobrantes'?
Un mensaje CBOR es un único elemento de datos. Si hay bytes extra tras el primer elemento completo, la herramienta los reporta en vez de ignorarlos en silencio — normalmente significa que la entrada es una secuencia de elementos, se truncó a mitad, o el formato (hex vs base64) es incorrecto.

Herramientas relacionadas