Leer la biblioteca de demostración
La demostración es una biblioteca estática servida con este sitio: nada que instalar, ninguna cuenta.
-
Leer su handshake
Cada biblioteca dice en un solo documento qué es, qué funciones ofrece y cuáles son sus límites.
curl -s https://lantern.boreale.dev/demo/lantern.json -
Listar sus apps
Una página de apps de una plataforma: cada una lleva su tamaño, su sha256 y la ruta de su archivo.
curl -s https://lantern.boreale.dev/demo/v1/apps/vita/pages/1.json -
Descargar y comprobar
El SHA-256 del archivo es el que anunciaba la app. Un cliente rechaza lo que no coincide.
curl -s https://lantern.boreale.dev/demo/v1/blobs/sha256/fa75492f7b78cad7ca4044e8fb548ac67bfd7fbf05242ceecb29ebe492218a0d | sha256sum
Más pruebas, incluidas bibliotecas hechas para romper un cliente: Biblioteca de demostración
Hablar con un servidor propio
Un servidor con cuentas pide primero que el dispositivo se empareje. Estas llamadas usan una dirección inventada.
-
Encontrarlo
En una red local, un cliente lo descubre con un datagrama UDP; con una dirección, lee el handshake en una ruta conocida.
curl -s https://shelf.example.org/.well-known/lantern -
Emparejar
El servidor responde con un código que se introduce en otro dispositivo, donde su propietario inicia sesión y aprueba.
curl -s -X POST https://shelf.example.org/api/lantern/v1/pairing \ -H 'Content-Type: application/json' \ -d '{"schema":1,"device":"My console","scopes":["library"]}' -
Llamarlo
Con el token recibido, como portador; un dispositivo emparejado con clave firma además cada solicitud.
curl -s https://shelf.example.org/api/lantern/v1/apps?page_size=5 \ -H 'Authorization: Bearer et_…'
Todo el camino
Recórralo paso a paso: cada pulsación ilumina un paso y atenúa el resto.
- Dispositivo → Servidor: UDP 47115 {"lantern":"discover"}
- Servidor → Dispositivo: {"lantern":"server", uid, port, base}
- Solo una pista: la confianza viene de TLS y del emparejamiento
- Dispositivo → Servidor: GET /.well-known/lantern
- Servidor → Dispositivo: handshake: uid, versions, platforms, features, limits
- Emparejamiento (§ 5.2)
- Dispositivo → Servidor: POST /v1/pairing {device, scopes, key}
- Servidor → Dispositivo: code KQ4M-7TXD, verify_complete, poll, interval
- Muestra el código, un QR y la huella corta de la clave
- Teléfono del usuario → Servidor: Abre el enlace, inicia sesión, compara la huella y aprueba
- Dispositivo → Servidor: GET <poll> (every interval)
- Servidor → Dispositivo: 202 … then 200 {token: et_…} or 410 gone · 429 slow_down
- Fija la clave del servidor para este uid (§ 5.3)
- Después, en cada llamada
- Dispositivo → Servidor: Authorization: Bearer et_… + request signature
- Servidor → Dispositivo: 200 · 401 · 403