Files
arkhe-origin-chain/docs/vectores/invitaciones-v1/invitaciones-v1.json
T
CharonandClaude Opus 5.5 abe680e853 docs(vectores): la firma OIT de las invitaciones V1, con los casos que deben fallar
Para Irhis y el servicio de invitaciones de originmetaverse.com (CONTRATO_INVITACIONES_V1 §3.1,
origin-metaverse-web d5f5f5e). Ella escribe sus tests antes que el servicio.

- Firma sobre etiqueta || 0x00 || JCS(cuerpo).
- 4 vectores que deben aceptarse y 11 que deben rechazarse: nonce repetido, ts fuera de
  ventana, etiqueta cruzada, llave de cabecera distinta, S no canonico, cuerpo cambiado, tres
  llaves de orden pequeno con firma forjada sin llave privada, y clave JSON duplicada.
- Ed25519 en Python puro (referencia del RFC 8032), comprobado con los TEST 1 y 2 del RFC y
  con OpenSSL byte a byte. Salida determinista.

Medido: OpenSSL 3.6.4 ACEPTA las tres firmas forjadas (F8-F10). La verificacion sola no basta;
hace falta la comprobacion de llave fuerte, como is_strong_ed25519_key en la cadena (RV14).

Contrafactual del generador: sin la comprobacion de orden pequeno, la de S < L o la etiqueta, se
niega a emitir. Las comprobaciones de codificacion canonica se solapan con la de orden pequeno en
F10 y ningun vector puede separarlas (ver LEEME).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 04:27:14 -05:00

436 lines
30 KiB
JSON

{
"version": "origin-invitaciones/vectores/v1",
"contrato": "origin-metaverse-web docs/CONTRATO_INVITACIONES_V1.md §3.1 (d5f5f5e)",
"autora": "Charon, 2026-10-28",
"mensaje_firmado": "utf8(etiqueta) || 0x00 || JCS(cuerpo)",
"codificacion": "pub, firma, nonce y token en base64url sin relleno; huella = sha256(token) en hex",
"llaves_de_prueba": {
"A_quien_invita": {
"semilla_hex": "9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60",
"pub_hex": "d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a",
"pub_b64url": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"origen": "RFC 8032 §7.1 TEST 1 (pública: nunca para nada real)"
},
"B_quien_canjea": {
"semilla_hex": "4ccd089b28ff96da9db6c346ec114e0f5b8a319f35aba624da8cf6ed4fb8a6fb",
"pub_hex": "3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c",
"pub_b64url": "PUAXw-hDiVqStwqnTRt-vJyYLM8uxJaMwM1V8Sr0Zgw",
"origen": "RFC 8032 §7.1 TEST 2"
}
},
"token_de_prueba": "HVC4TTwAc5X9awxdLTV8X9kDOcw_g3yUJSOadF_UW64",
"huella_de_prueba": "d24ddd65bd757dc69b7a630d8410556221a433c4329531d22f66d23d4348b76c",
"comprobado_con": [
"RFC 8032 TEST 1 y 2 (llave y firma)",
"OpenSSL 3.6.4 (V1-V3 byte a byte)"
],
"como_usarlos": [
"Cada vector es una petición: transporte_json es el cuerpo HTTP y cabeceras sus cabeceras.",
"Fija el reloj del servidor en reloj_del_servidor y empieza cada vector con el almacén de nonces vacío, salvo F1, que va justo después de V1.",
"espera = acepta | rechaza. Un test que no sepa reprobar no vale: quita cada comprobación y mira que su vector pase a aceptarse.",
"verificador_laxo_acepta_la_firma dice qué pasaría con un verificador permisivo: F6 y F8-F10 pasan ahí. F8-F10 cumplen la ecuación: OpenSSL 3.6.4 los ACEPTA (openssl_acepta_la_firma). Si tu verify con zip215:false tampoco los rechaza, falta la comprobación de llave fuerte: decodificar pub, exigir que vuelva a codificarse igual y que no sea de orden pequeño."
],
"supuestos_por_confirmar": [
"expiraEn es un instante absoluto en segundos (ts + 7 días aquí). Si es una duración, se regeneran.",
"canjear firma {aud, nonce, pub, token, ts}: pub es la OIT de quien canjea y el token (la preimagen) va DENTRO de lo firmado. El §3 punto 3 dice {token, canjeadorOit, firma} y el §3.1 dice «la huella del token»: con la huella sola el servidor no puede comprobar la preimagen.",
"revocar firma {aud, huella, nonce, pub, ts}, con pub igual a invitadorOit."
],
"vectores": [
{
"id": "V1",
"operacion": "crear",
"etiqueta": "origin-invitaciones/crear/v1",
"cuerpo": {
"aud": "originmetaverse.com",
"ts": 1793188800,
"nonce": "l-SsDclPrSgeO_MdNULifQ",
"pub": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"destino": "mundo-de-prueba.v1",
"expiraEn": 1793793600
},
"jcs": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"transporte_json": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"mensaje_hex": "6f726967696e2d696e7669746163696f6e65732f63726561722f7631007b22617564223a226f726967696e6d65746176657273652e636f6d222c2264657374696e6f223a226d756e646f2d64652d7072756562612e7631222c22657870697261456e223a313739333739333630302c226e6f6e6365223a226c2d537344636c50725367654f5f4d644e554c696651222c22707562223a223131715941594b7843726656535f3754795751484f6737686376506170694d6c727749616150634855526f222c227473223a313739333138383830307d",
"cabeceras": {
"Origin-Llave": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"Origin-Firma": "94ykfqmBeDJEvKgBdGBGmdUZFQPprWW2F79-heC7ZIn9-hwpu-aQh5vwf7MCSZ0E3ead6U9JeqJUdgY0Oc8HAg"
},
"reloj_del_servidor": 1793188800,
"espera": "acepta",
"motivo": "petición válida",
"verificador_estricto_acepta_la_firma": true,
"verificador_laxo_acepta_la_firma": true,
"openssl_acepta_la_firma": true
},
{
"id": "V2",
"operacion": "canjear",
"etiqueta": "origin-invitaciones/canjear/v1",
"cuerpo": {
"aud": "originmetaverse.com",
"ts": 1793188800,
"nonce": "ioBVewvUqbJNvOUwlE380w",
"pub": "PUAXw-hDiVqStwqnTRt-vJyYLM8uxJaMwM1V8Sr0Zgw",
"token": "HVC4TTwAc5X9awxdLTV8X9kDOcw_g3yUJSOadF_UW64"
},
"jcs": "{\"aud\":\"originmetaverse.com\",\"nonce\":\"ioBVewvUqbJNvOUwlE380w\",\"pub\":\"PUAXw-hDiVqStwqnTRt-vJyYLM8uxJaMwM1V8Sr0Zgw\",\"token\":\"HVC4TTwAc5X9awxdLTV8X9kDOcw_g3yUJSOadF_UW64\",\"ts\":1793188800}",
"transporte_json": "{\"aud\":\"originmetaverse.com\",\"nonce\":\"ioBVewvUqbJNvOUwlE380w\",\"pub\":\"PUAXw-hDiVqStwqnTRt-vJyYLM8uxJaMwM1V8Sr0Zgw\",\"token\":\"HVC4TTwAc5X9awxdLTV8X9kDOcw_g3yUJSOadF_UW64\",\"ts\":1793188800}",
"mensaje_hex": "6f726967696e2d696e7669746163696f6e65732f63616e6a6561722f7631007b22617564223a226f726967696e6d65746176657273652e636f6d222c226e6f6e6365223a22696f42566577765571624a4e764f55776c4533383077222c22707562223a2250554158772d6844695671537477716e5452742d764a79594c4d3875784a614d774d3156385372305a6777222c22746f6b656e223a22485643345454774163355839617778644c54563858396b444f63775f673379554a534f6164465f55573634222c227473223a313739333138383830307d",
"cabeceras": {
"Origin-Llave": "PUAXw-hDiVqStwqnTRt-vJyYLM8uxJaMwM1V8Sr0Zgw",
"Origin-Firma": "3Z79SlRC62mrNAzMLP6o1CNbIdj2uIWlc2sWzQvQDhZP5m9dHCKPjrI3SqM33eZQRnYx7b4ouq2ARR2Yi-ujBA"
},
"reloj_del_servidor": 1793188800,
"espera": "acepta",
"motivo": "petición válida",
"verificador_estricto_acepta_la_firma": true,
"verificador_laxo_acepta_la_firma": true,
"openssl_acepta_la_firma": true
},
{
"id": "V3",
"operacion": "revocar",
"etiqueta": "origin-invitaciones/revocar/v1",
"cuerpo": {
"aud": "originmetaverse.com",
"ts": 1793188800,
"nonce": "CbdsIxFrDPvBSN_2qYeVcw",
"pub": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"huella": "d24ddd65bd757dc69b7a630d8410556221a433c4329531d22f66d23d4348b76c"
},
"jcs": "{\"aud\":\"originmetaverse.com\",\"huella\":\"d24ddd65bd757dc69b7a630d8410556221a433c4329531d22f66d23d4348b76c\",\"nonce\":\"CbdsIxFrDPvBSN_2qYeVcw\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"transporte_json": "{\"aud\":\"originmetaverse.com\",\"huella\":\"d24ddd65bd757dc69b7a630d8410556221a433c4329531d22f66d23d4348b76c\",\"nonce\":\"CbdsIxFrDPvBSN_2qYeVcw\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"mensaje_hex": "6f726967696e2d696e7669746163696f6e65732f7265766f6361722f7631007b22617564223a226f726967696e6d65746176657273652e636f6d222c226875656c6c61223a2264323464646436356264373537646336396237613633306438343130353536323231613433336334333239353331643232663636643233643433343862373663222c226e6f6e6365223a22436264734978467244507642534e5f32715965566377222c22707562223a223131715941594b7843726656535f3754795751484f6737686376506170694d6c727749616150634855526f222c227473223a313739333138383830307d",
"cabeceras": {
"Origin-Llave": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"Origin-Firma": "FR69zi1RDZYrREfVHhZkoO190h27Mrw74_NLPIxze79_QZMRXL8f700OPAzOu00CQLaDIuel4VD30mvqtRcHBQ"
},
"reloj_del_servidor": 1793188800,
"espera": "acepta",
"motivo": "petición válida",
"verificador_estricto_acepta_la_firma": true,
"verificador_laxo_acepta_la_firma": true,
"openssl_acepta_la_firma": true
},
{
"id": "V4",
"operacion": "crear",
"etiqueta": "origin-invitaciones/crear/v1",
"cuerpo": {
"aud": "originmetaverse.com",
"ts": 1793188800,
"nonce": "l-SsDclPrSgeO_MdNULifQ",
"pub": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"destino": "mundo-de-prueba.v1",
"expiraEn": 1793793600
},
"jcs": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"transporte_json": "{ \"pub\": \"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\", \"ts\": 1793188800, \"nonce\": \"l-SsDclPrSgeO_MdNULifQ\", \"aud\": \"originmetaverse.com\", \"expiraEn\": 1793793600, \"destino\": \"mundo-de-prueba.v1\" }",
"mensaje_hex": "6f726967696e2d696e7669746163696f6e65732f63726561722f7631007b22617564223a226f726967696e6d65746176657273652e636f6d222c2264657374696e6f223a226d756e646f2d64652d7072756562612e7631222c22657870697261456e223a313739333739333630302c226e6f6e6365223a226c2d537344636c50725367654f5f4d644e554c696651222c22707562223a223131715941594b7843726656535f3754795751484f6737686376506170694d6c727749616150634855526f222c227473223a313739333138383830307d",
"cabeceras": {
"Origin-Llave": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"Origin-Firma": "94ykfqmBeDJEvKgBdGBGmdUZFQPprWW2F79-heC7ZIn9-hwpu-aQh5vwf7MCSZ0E3ead6U9JeqJUdgY0Oc8HAg"
},
"reloj_del_servidor": 1793188800,
"espera": "acepta",
"motivo": "mismo V1 con otro orden de claves y espacios en el transporte: el servidor firma sobre JCS, no sobre los bytes recibidos",
"verificador_estricto_acepta_la_firma": true,
"verificador_laxo_acepta_la_firma": true,
"openssl_acepta_la_firma": true,
"nota": "usar como petición nueva; si se manda DESPUÉS de V1, es el caso F2 (nonce repetido)"
},
{
"id": "F1",
"operacion": "crear",
"etiqueta": "origin-invitaciones/crear/v1",
"cuerpo": {
"aud": "originmetaverse.com",
"ts": 1793188800,
"nonce": "l-SsDclPrSgeO_MdNULifQ",
"pub": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"destino": "mundo-de-prueba.v1",
"expiraEn": 1793793600
},
"jcs": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"transporte_json": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"mensaje_hex": "6f726967696e2d696e7669746163696f6e65732f63726561722f7631007b22617564223a226f726967696e6d65746176657273652e636f6d222c2264657374696e6f223a226d756e646f2d64652d7072756562612e7631222c22657870697261456e223a313739333739333630302c226e6f6e6365223a226c2d537344636c50725367654f5f4d644e554c696651222c22707562223a223131715941594b7843726656535f3754795751484f6737686376506170694d6c727749616150634855526f222c227473223a313739333138383830307d",
"cabeceras": {
"Origin-Llave": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"Origin-Firma": "94ykfqmBeDJEvKgBdGBGmdUZFQPprWW2F79-heC7ZIn9-hwpu-aQh5vwf7MCSZ0E3ead6U9JeqJUdgY0Oc8HAg"
},
"reloj_del_servidor": 1793188800,
"espera": "rechaza",
"motivo": "nonce repetido",
"verificador_estricto_acepta_la_firma": true,
"verificador_laxo_acepta_la_firma": true,
"openssl_acepta_la_firma": true,
"nota": "enviar V1 y luego exactamente la misma petición: la firma es buena, el par (pub, nonce) ya se usó dentro de la ventana"
},
{
"id": "F2",
"operacion": "crear",
"etiqueta": "origin-invitaciones/crear/v1",
"cuerpo": {
"aud": "originmetaverse.com",
"ts": 1793188800,
"nonce": "l-SsDclPrSgeO_MdNULifQ",
"pub": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"destino": "mundo-de-prueba.v1",
"expiraEn": 1793793600
},
"jcs": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"transporte_json": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"mensaje_hex": "6f726967696e2d696e7669746163696f6e65732f63726561722f7631007b22617564223a226f726967696e6d65746176657273652e636f6d222c2264657374696e6f223a226d756e646f2d64652d7072756562612e7631222c22657870697261456e223a313739333739333630302c226e6f6e6365223a226c2d537344636c50725367654f5f4d644e554c696651222c22707562223a223131715941594b7843726656535f3754795751484f6737686376506170694d6c727749616150634855526f222c227473223a313739333138383830307d",
"cabeceras": {
"Origin-Llave": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"Origin-Firma": "94ykfqmBeDJEvKgBdGBGmdUZFQPprWW2F79-heC7ZIn9-hwpu-aQh5vwf7MCSZ0E3ead6U9JeqJUdgY0Oc8HAg"
},
"reloj_del_servidor": 1793189101,
"espera": "rechaza",
"motivo": "ts fuera de la ventana de ±5 min",
"verificador_estricto_acepta_la_firma": true,
"verificador_laxo_acepta_la_firma": true,
"openssl_acepta_la_firma": true,
"nota": "mismo V1, con el reloj del servidor 301 s por delante"
},
{
"id": "F3",
"operacion": "crear",
"etiqueta": "origin-invitaciones/crear/v1",
"cuerpo": {
"aud": "originmetaverse.com",
"ts": 1793188800,
"nonce": "l-SsDclPrSgeO_MdNULifQ",
"pub": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"destino": "mundo-de-prueba.v1",
"expiraEn": 1793793600
},
"jcs": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"transporte_json": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"mensaje_hex": "6f726967696e2d696e7669746163696f6e65732f63726561722f7631007b22617564223a226f726967696e6d65746176657273652e636f6d222c2264657374696e6f223a226d756e646f2d64652d7072756562612e7631222c22657870697261456e223a313739333739333630302c226e6f6e6365223a226c2d537344636c50725367654f5f4d644e554c696651222c22707562223a223131715941594b7843726656535f3754795751484f6737686376506170694d6c727749616150634855526f222c227473223a313739333138383830307d",
"cabeceras": {
"Origin-Llave": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"Origin-Firma": "94ykfqmBeDJEvKgBdGBGmdUZFQPprWW2F79-heC7ZIn9-hwpu-aQh5vwf7MCSZ0E3ead6U9JeqJUdgY0Oc8HAg"
},
"reloj_del_servidor": 1793188499,
"espera": "rechaza",
"motivo": "ts fuera de la ventana de ±5 min",
"verificador_estricto_acepta_la_firma": true,
"verificador_laxo_acepta_la_firma": true,
"openssl_acepta_la_firma": true,
"nota": "mismo V1, con el reloj del servidor 301 s por detrás (ts del futuro)"
},
{
"id": "F4",
"operacion": "canjear",
"etiqueta": "origin-invitaciones/canjear/v1",
"cuerpo": {
"aud": "originmetaverse.com",
"ts": 1793188800,
"nonce": "ioBVewvUqbJNvOUwlE380w",
"pub": "PUAXw-hDiVqStwqnTRt-vJyYLM8uxJaMwM1V8Sr0Zgw",
"token": "HVC4TTwAc5X9awxdLTV8X9kDOcw_g3yUJSOadF_UW64"
},
"jcs": "{\"aud\":\"originmetaverse.com\",\"nonce\":\"ioBVewvUqbJNvOUwlE380w\",\"pub\":\"PUAXw-hDiVqStwqnTRt-vJyYLM8uxJaMwM1V8Sr0Zgw\",\"token\":\"HVC4TTwAc5X9awxdLTV8X9kDOcw_g3yUJSOadF_UW64\",\"ts\":1793188800}",
"transporte_json": "{\"aud\":\"originmetaverse.com\",\"nonce\":\"ioBVewvUqbJNvOUwlE380w\",\"pub\":\"PUAXw-hDiVqStwqnTRt-vJyYLM8uxJaMwM1V8Sr0Zgw\",\"token\":\"HVC4TTwAc5X9awxdLTV8X9kDOcw_g3yUJSOadF_UW64\",\"ts\":1793188800}",
"mensaje_hex": "6f726967696e2d696e7669746163696f6e65732f63616e6a6561722f7631007b22617564223a226f726967696e6d65746176657273652e636f6d222c226e6f6e6365223a22696f42566577765571624a4e764f55776c4533383077222c22707562223a2250554158772d6844695671537477716e5452742d764a79594c4d3875784a614d774d3156385372305a6777222c22746f6b656e223a22485643345454774163355839617778644c54563858396b444f63775f673379554a534f6164465f55573634222c227473223a313739333138383830307d",
"cabeceras": {
"Origin-Llave": "PUAXw-hDiVqStwqnTRt-vJyYLM8uxJaMwM1V8Sr0Zgw",
"Origin-Firma": "8tzYumpNlvl9a42l970jmXJB5PFYUq1pK-RJagxXDjq74a_hkeOVtDqGrOK0eopWrfNs9kWwE423IP99fsKDDg"
},
"reloj_del_servidor": 1793188800,
"espera": "rechaza",
"motivo": "etiqueta cruzada: la firma se hizo con la etiqueta de crear sobre el cuerpo de canjear",
"verificador_estricto_acepta_la_firma": false,
"verificador_laxo_acepta_la_firma": false,
"openssl_acepta_la_firma": false,
"firmado_con": "origin-invitaciones/crear/v1"
},
{
"id": "F5",
"operacion": "crear",
"etiqueta": "origin-invitaciones/crear/v1",
"cuerpo": {
"aud": "originmetaverse.com",
"ts": 1793188800,
"nonce": "l-SsDclPrSgeO_MdNULifQ",
"pub": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"destino": "mundo-de-prueba.v1",
"expiraEn": 1793793600
},
"jcs": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"transporte_json": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"mensaje_hex": "6f726967696e2d696e7669746163696f6e65732f63726561722f7631007b22617564223a226f726967696e6d65746176657273652e636f6d222c2264657374696e6f223a226d756e646f2d64652d7072756562612e7631222c22657870697261456e223a313739333739333630302c226e6f6e6365223a226c2d537344636c50725367654f5f4d644e554c696651222c22707562223a223131715941594b7843726656535f3754795751484f6737686376506170694d6c727749616150634855526f222c227473223a313739333138383830307d",
"cabeceras": {
"Origin-Llave": "PUAXw-hDiVqStwqnTRt-vJyYLM8uxJaMwM1V8Sr0Zgw",
"Origin-Firma": "94ykfqmBeDJEvKgBdGBGmdUZFQPprWW2F79-heC7ZIn9-hwpu-aQh5vwf7MCSZ0E3ead6U9JeqJUdgY0Oc8HAg"
},
"reloj_del_servidor": 1793188800,
"espera": "rechaza",
"motivo": "Origin-Llave no es igual al pub del cuerpo (debe rechazarse ANTES de verificar)",
"verificador_estricto_acepta_la_firma": false,
"verificador_laxo_acepta_la_firma": false,
"openssl_acepta_la_firma": false
},
{
"id": "F6",
"operacion": "crear",
"etiqueta": "origin-invitaciones/crear/v1",
"cuerpo": {
"aud": "originmetaverse.com",
"ts": 1793188800,
"nonce": "l-SsDclPrSgeO_MdNULifQ",
"pub": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"destino": "mundo-de-prueba.v1",
"expiraEn": 1793793600
},
"jcs": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"transporte_json": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"mensaje_hex": "6f726967696e2d696e7669746163696f6e65732f63726561722f7631007b22617564223a226f726967696e6d65746176657273652e636f6d222c2264657374696e6f223a226d756e646f2d64652d7072756562612e7631222c22657870697261456e223a313739333739333630302c226e6f6e6365223a226c2d537344636c50725367654f5f4d644e554c696651222c22707562223a223131715941594b7843726656535f3754795751484f6737686376506170694d6c727749616150634855526f222c227473223a313739333138383830307d",
"cabeceras": {
"Origin-Llave": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"Origin-Firma": "94ykfqmBeDJEvKgBdGBGmdUZFQPprWW2F79-heC7ZInqzhKG1Umj33GNd1bhQnwZ3ead6U9JeqJUdgY0Oc8HEg"
},
"reloj_del_servidor": 1793188800,
"espera": "rechaza",
"motivo": "S no canónico (S >= L): firma maleable",
"verificador_estricto_acepta_la_firma": false,
"verificador_laxo_acepta_la_firma": true,
"openssl_acepta_la_firma": false
},
{
"id": "F7",
"operacion": "crear",
"etiqueta": "origin-invitaciones/crear/v1",
"cuerpo": {
"aud": "originmetaverse.com",
"ts": 1793188800,
"nonce": "l-SsDclPrSgeO_MdNULifQ",
"pub": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"destino": "otro-mundo",
"expiraEn": 1793793600
},
"jcs": "{\"aud\":\"originmetaverse.com\",\"destino\":\"otro-mundo\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"transporte_json": "{\"aud\":\"originmetaverse.com\",\"destino\":\"otro-mundo\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"mensaje_hex": "6f726967696e2d696e7669746163696f6e65732f63726561722f7631007b22617564223a226f726967696e6d65746176657273652e636f6d222c2264657374696e6f223a226f74726f2d6d756e646f222c22657870697261456e223a313739333739333630302c226e6f6e6365223a226c2d537344636c50725367654f5f4d644e554c696651222c22707562223a223131715941594b7843726656535f3754795751484f6737686376506170694d6c727749616150634855526f222c227473223a313739333138383830307d",
"cabeceras": {
"Origin-Llave": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"Origin-Firma": "94ykfqmBeDJEvKgBdGBGmdUZFQPprWW2F79-heC7ZIn9-hwpu-aQh5vwf7MCSZ0E3ead6U9JeqJUdgY0Oc8HAg"
},
"reloj_del_servidor": 1793188800,
"espera": "rechaza",
"motivo": "el cuerpo no es el firmado (destino cambiado)",
"verificador_estricto_acepta_la_firma": false,
"verificador_laxo_acepta_la_firma": false,
"openssl_acepta_la_firma": false
},
{
"id": "F8",
"operacion": "crear",
"etiqueta": "origin-invitaciones/crear/v1",
"cuerpo": {
"aud": "originmetaverse.com",
"ts": 1793188800,
"nonce": "XJeasE1GFNTkdfN8ER9KCg",
"pub": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"destino": "mundo-de-prueba.v1",
"expiraEn": 1793793600
},
"jcs": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"XJeasE1GFNTkdfN8ER9KCg\",\"pub\":\"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"ts\":1793188800}",
"transporte_json": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"XJeasE1GFNTkdfN8ER9KCg\",\"pub\":\"AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"ts\":1793188800}",
"mensaje_hex": "6f726967696e2d696e7669746163696f6e65732f63726561722f7631007b22617564223a226f726967696e6d65746176657273652e636f6d222c2264657374696e6f223a226d756e646f2d64652d7072756562612e7631222c22657870697261456e223a313739333739333630302c226e6f6e6365223a22584a656173453147464e546b64664e384552394b4367222c22707562223a2241514141414141414141414141414141414141414141414141414141414141414141414141414141414141222c227473223a313739333138383830307d",
"cabeceras": {
"Origin-Llave": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
"Origin-Firma": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
},
"reloj_del_servidor": 1793188800,
"espera": "rechaza",
"motivo": "llave de orden pequeño: la identidad (orden 1). Firma trivial R de orden pequeño y S = 0, hecha SIN llave privada",
"verificador_estricto_acepta_la_firma": false,
"verificador_laxo_acepta_la_firma": true,
"openssl_acepta_la_firma": true,
"nota": "la ecuación de verificación SE CUMPLE: sólo la rechaza la comprobación explícita de llave fuerte (en la cadena, is_strong_ed25519_key; RV14)"
},
{
"id": "F9",
"operacion": "crear",
"etiqueta": "origin-invitaciones/crear/v1",
"cuerpo": {
"aud": "originmetaverse.com",
"ts": 1793188800,
"nonce": "REfXPa4tGjc5slEI5bpktg",
"pub": "7P_______________________________________38",
"destino": "mundo-de-prueba.v1",
"expiraEn": 1793793600
},
"jcs": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"REfXPa4tGjc5slEI5bpktg\",\"pub\":\"7P_______________________________________38\",\"ts\":1793188800}",
"transporte_json": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"REfXPa4tGjc5slEI5bpktg\",\"pub\":\"7P_______________________________________38\",\"ts\":1793188800}",
"mensaje_hex": "6f726967696e2d696e7669746163696f6e65732f63726561722f7631007b22617564223a226f726967696e6d65746176657273652e636f6d222c2264657374696e6f223a226d756e646f2d64652d7072756562612e7631222c22657870697261456e223a313739333739333630302c226e6f6e6365223a225245665850613474476a6335736c45493562706b7467222c22707562223a2237505f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f3338222c227473223a313739333138383830307d",
"cabeceras": {
"Origin-Llave": "7P_______________________________________38",
"Origin-Firma": "7P_______________________________________38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
},
"reloj_del_servidor": 1793188800,
"espera": "rechaza",
"motivo": "llave de orden pequeño: el punto de orden 2. Firma trivial R de orden pequeño y S = 0, hecha SIN llave privada",
"verificador_estricto_acepta_la_firma": false,
"verificador_laxo_acepta_la_firma": true,
"openssl_acepta_la_firma": true,
"nota": "la ecuación de verificación SE CUMPLE: sólo la rechaza la comprobación explícita de llave fuerte (en la cadena, is_strong_ed25519_key; RV14)"
},
{
"id": "F10",
"operacion": "crear",
"etiqueta": "origin-invitaciones/crear/v1",
"cuerpo": {
"aud": "originmetaverse.com",
"ts": 1793188800,
"nonce": "PBi0xI2621syp0145Qoi5Q",
"pub": "7v_______________________________________38",
"destino": "mundo-de-prueba.v1",
"expiraEn": 1793793600
},
"jcs": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"PBi0xI2621syp0145Qoi5Q\",\"pub\":\"7v_______________________________________38\",\"ts\":1793188800}",
"transporte_json": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"PBi0xI2621syp0145Qoi5Q\",\"pub\":\"7v_______________________________________38\",\"ts\":1793188800}",
"mensaje_hex": "6f726967696e2d696e7669746163696f6e65732f63726561722f7631007b22617564223a226f726967696e6d65746176657273652e636f6d222c2264657374696e6f223a226d756e646f2d64652d7072756562612e7631222c22657870697261456e223a313739333739333630302c226e6f6e6365223a225042693078493236323173797030313435516f693551222c22707562223a2237765f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f5f3338222c227473223a313739333138383830307d",
"cabeceras": {
"Origin-Llave": "7v_______________________________________38",
"Origin-Firma": "AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
},
"reloj_del_servidor": 1793188800,
"espera": "rechaza",
"motivo": "llave de orden pequeño: una codificación NO canónica de la identidad (y = p + 1). Firma trivial R de orden pequeño y S = 0, hecha SIN llave privada",
"verificador_estricto_acepta_la_firma": false,
"verificador_laxo_acepta_la_firma": true,
"openssl_acepta_la_firma": true,
"nota": "la ecuación de verificación SE CUMPLE: sólo la rechaza la comprobación explícita de llave fuerte (en la cadena, is_strong_ed25519_key; RV14)"
},
{
"id": "F11",
"operacion": "crear",
"etiqueta": "origin-invitaciones/crear/v1",
"cuerpo": {
"aud": "originmetaverse.com",
"ts": 1793188800,
"nonce": "l-SsDclPrSgeO_MdNULifQ",
"pub": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"destino": "mundo-de-prueba.v1",
"expiraEn": 1793793600
},
"jcs": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800}",
"transporte_json": "{\"aud\":\"originmetaverse.com\",\"destino\":\"mundo-de-prueba.v1\",\"expiraEn\":1793793600,\"nonce\":\"l-SsDclPrSgeO_MdNULifQ\",\"pub\":\"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo\",\"ts\":1793188800,\"destino\":\"otro-mundo\"}",
"mensaje_hex": "6f726967696e2d696e7669746163696f6e65732f63726561722f7631007b22617564223a226f726967696e6d65746176657273652e636f6d222c2264657374696e6f223a226d756e646f2d64652d7072756562612e7631222c22657870697261456e223a313739333739333630302c226e6f6e6365223a226c2d537344636c50725367654f5f4d644e554c696651222c22707562223a223131715941594b7843726656535f3754795751484f6737686376506170694d6c727749616150634855526f222c227473223a313739333138383830307d",
"cabeceras": {
"Origin-Llave": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo",
"Origin-Firma": "94ykfqmBeDJEvKgBdGBGmdUZFQPprWW2F79-heC7ZIn9-hwpu-aQh5vwf7MCSZ0E3ead6U9JeqJUdgY0Oc8HAg"
},
"reloj_del_servidor": 1793188800,
"espera": "rechaza",
"motivo": "clave duplicada en el JSON recibido. JCS (RFC 8785 §3.1, I-JSON) no la admite, y JSON.parse se queda en silencio con la última",
"verificador_estricto_acepta_la_firma": true,
"verificador_laxo_acepta_la_firma": true,
"openssl_acepta_la_firma": true
}
]
}