Lire la bibliothèque de démo
La démo est une bibliothèque statique servie avec ce site : rien à installer, aucun compte.
-
Lire son handshake
Chaque bibliothèque dit ce qu'elle est, les fonctions qu'elle offre et ses limites dans un seul document.
curl -s https://lantern.boreale.dev/demo/lantern.json -
Lister ses applis
Une page d'applis pour une plateforme : chacune porte sa taille, son sha256 et le chemin de son fichier.
curl -s https://lantern.boreale.dev/demo/v1/apps/vita/pages/1.json -
Télécharger et vérifier
Le SHA-256 du fichier est celui qu'annonçait l'appli. Un client refuse ce qui ne correspond pas.
curl -s https://lantern.boreale.dev/demo/v1/blobs/sha256/fa75492f7b78cad7ca4044e8fb548ac67bfd7fbf05242ceecb29ebe492218a0d | sha256sum
D'autres essais, dont des bibliothèques faites pour piéger un client : Bibliothèque de démonstration
Parler à un serveur à vous
Un serveur à comptes demande d'abord à l'appareil de s'apparier. Ces appels utilisent une adresse fictive.
-
La trouver
Sur un réseau local, un client la découvre par un datagramme UDP ; avec une adresse, il lit le handshake à un chemin connu.
curl -s https://shelf.example.org/.well-known/lantern -
S'apparier
Le serveur répond par un code à saisir sur un autre appareil, où son propriétaire se connecte et approuve.
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"]}' -
L'appeler
Avec le jeton reçu, en porteur ; un appareil apparié avec une clé signe en plus chaque requête.
curl -s https://shelf.example.org/api/lantern/v1/apps?page_size=5 \ -H 'Authorization: Bearer et_…'
Tout le chemin
Parcourez-le pas à pas : chaque pression éclaire une étape et estompe les autres.
- Appareil → Serveur: UDP 47115 {"lantern":"discover"}
- Serveur → Appareil: {"lantern":"server", uid, port, base}
- Un simple indice : la confiance vient de TLS et de l'appairage
- Appareil → Serveur: GET /.well-known/lantern
- Serveur → Appareil: handshake: uid, versions, platforms, features, limits
- Appairage (§ 5.2)
- Appareil → Serveur: POST /v1/pairing {device, scopes, key}
- Serveur → Appareil: code KQ4M-7TXD, verify_complete, poll, interval
- Affiche le code, un QR code et l'empreinte courte de la clé
- Téléphone de l'utilisateur → Serveur: Ouvre le lien, se connecte, compare l'empreinte, approuve
- Appareil → Serveur: GET <poll> (every interval)
- Serveur → Appareil: 202 … then 200 {token: et_…} or 410 gone · 429 slow_down
- Épingle la clé du serveur pour ce uid (§ 5.3)
- Ensuite, à chaque appel
- Appareil → Serveur: Authorization: Bearer et_… + request signature
- Serveur → Appareil: 200 · 401 · 403