← Journal technique
Ferry·distribué & temps réel

Le pairing ne peut pas vivre dans un processus sans tête

SPAKE2 pairing needs a human to confirm a verification phrase, so it runs in the CLI rather than the headless daemon, which can't guarantee a TTY.

Ça ne pouvait pas marcher

Une course, un ordre, une colonne pour deux choses. La forme l'excluait avant même l'exécution.

ferry pair fait tourner l'échange SPAKE2 dans la CLI sur un socket TCP brut, pas dans le démon. Le démon est sans tête et ne peut pas garantir un TTY, et le flux de pairing exige qu'un humain lise et confirme une phrase de vérification. Les deux côtés échangent leurs identités sur le canal dérivé de SPAKE2, calculent la même phrase, chacun demande à son propre humain, et seulement si les deux confirmations sont oui l'un ou l'autre côté commit l'entrée du roster.

La forme générale : une étape qui exige structurellement un humain ne peut pas vivre dans un processus qui structurellement ne peut pas en atteindre un.