Leggere la libreria demo
La demo è una libreria statica servita con questo sito: niente da installare, nessun account.
-
Leggere il suo handshake
Ogni libreria dice in un solo documento cos'è, quali funzioni offre e quali sono i suoi limiti.
curl -s https://lantern.boreale.dev/demo/lantern.json -
Elencare le sue app
Una pagina di app per una piattaforma: ognuna porta dimensione, sha256 e percorso del file.
curl -s https://lantern.boreale.dev/demo/v1/apps/vita/pages/1.json -
Scaricare e verificare
Lo SHA-256 del file è quello annunciato dall'app. Un client rifiuta ciò che non corrisponde.
curl -s https://lantern.boreale.dev/demo/v1/blobs/sha256/fa75492f7b78cad7ca4044e8fb548ac67bfd7fbf05242ceecb29ebe492218a0d | sha256sum
Altre prove, comprese librerie fatte per mettere in crisi un client: Libreria dimostrativa
Parlare con un server tuo
Un server con account chiede prima di abbinare il dispositivo. Queste chiamate usano un indirizzo inventato.
-
Trovarlo
In una rete locale un client lo scopre con un datagramma UDP; con un indirizzo legge l'handshake a un percorso noto.
curl -s https://shelf.example.org/.well-known/lantern -
Abbinare
Il server risponde con un codice da inserire su un altro dispositivo, dove il proprietario accede e approva.
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"]}' -
Chiamarlo
Con il token ricevuto, come bearer; un dispositivo abbinato con una chiave firma anche ogni richiesta.
curl -s https://shelf.example.org/api/lantern/v1/apps?page_size=5 \ -H 'Authorization: Bearer et_…'
L'intero percorso
Percorrilo passo dopo passo: ogni pressione illumina un passaggio e attenua gli altri.
- Dispositivo → Server: UDP 47115 {"lantern":"discover"}
- Server → Dispositivo: {"lantern":"server", uid, port, base}
- Solo un indizio: la fiducia viene da TLS e dall'abbinamento
- Dispositivo → Server: GET /.well-known/lantern
- Server → Dispositivo: handshake: uid, versions, platforms, features, limits
- Abbinamento (§ 5.2)
- Dispositivo → Server: POST /v1/pairing {device, scopes, key}
- Server → Dispositivo: code KQ4M-7TXD, verify_complete, poll, interval
- Mostra il codice, un QR e l'impronta breve della chiave
- Telefono dell'utente → Server: Apre il link, accede, confronta l'impronta e approva
- Dispositivo → Server: GET <poll> (every interval)
- Server → Dispositivo: 202 … then 200 {token: et_…} or 410 gone · 429 slow_down
- Fissa la chiave del server per questo uid (§ 5.3)
- Poi, a ogni chiamata
- Dispositivo → Server: Authorization: Bearer et_… + request signature
- Server → Dispositivo: 200 · 401 · 403