matrix-e2ee-bin: Binary auf mautrix-go und PHP-Seite (#845 in site-cpd) #1
Loading…
Reference in a new issue
No description provided.
Delete branch "initial-build"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bezug: CrowdPower/site-cpd#845 Ende-zu-Ende-Verschlüsselung in CPD
Was
Das Composer-Paket
crowdpower/matrix-e2ee-bin: ein statisches Go-Binary auf mautrix-go (goolm, ohne cgo), das ein Matrix-Konto zu einem Ende-zu-Ende-verschlüsselnden Gerät macht, von PHP je Ereignis gestartet, dazu eine Drupal-freie PHP-Seite (Runner, Exceptions je Exit-Code, Fake-Binary für Tests der Nutzer). Die README ist die Spezifikation (Befehle, Flags, Umgebung, Exit-Codes, stdout, Bedrohungsmodell, Build).Wie
2026-10-22-vorbereiten-assistent-verschluesselung.mdin site-cpd, Abschnitt C „A′“) nach einem vorab geschriebenen Vertrag gebaut; der Vertrag ist in die README eingeflossen.build.sh,VERSIONmit SHA-256 und Versionen,build.sh --checkbaut neu und vergleicht Byte für Byte).scripts/integration.shgegen Continuwuity v26.9.1 in Docker, 38 von 38 Schritten, Ergebnis in der README.verified;sendteilte mit jedem Mitglied, das der Server nennt (jetzt optionale Empfängerliste, Exit 4unexpected_members);pinbrauchte eine Schlüsselabfrage. Dazu Exit 5 enger gefasst (ein E/A-Fehler auf dem Netzdateisystem verwirft keinen gesunden Store mehr), Rotation bei Mitgliederwechsel in beide Richtungen, keine Beantwortung von Schlüsselanfragen, Gesamt-Timeout je Befehl,fcntl-Sperre im Binary als zweite Sicherung, Secrets nicht mehr in argv und nicht überjson_encodelesbar.Review-Fragen
crowdpowersind vom Bau gesetzt, nicht entschieden. Annahme: wiehook-dev-alter/typst-bin.goolm(pure-Go-Olm) statt libolm oder vodozemac, weil ohne cgo; ein unabhängiges Audit von goolm ist nicht bekannt. Annahme: für Demo-Daten tragbar, Frage an das Review vor echten Daten (A7 in #845).m.relates_to) sind nach Matrix-Spezifikation im Klartext der Hülle und damit vom Server fälschbar; dokumentiert, nicht behebbar.Offen, nicht in diesem PR
login --passwordfür ein gewöhnliches Konto (chat2note, #844).build.sh --checkin einer CI des Pakets; Build-Image per Digest pinnen; Idempotenz vonsend.🤖 Generated with Claude Code
send takes {"text", "html"} as one JSON object on stdin instead of --text and --html: argv is readable in /proc by every user of the host while the process runs, and freistilbox is a shared host. --room, --msgtype, --reply-to and --edit-of stay flags. The Runner's API is unchanged; SendRequest::stdin() carries the body. A store that holds a device but no since is exit 5 instead of 2: it is what a login leaves that died before saving since, and the caller's recovery (move aside, login from the seeds, pin) repairs it. Rebuilt binary; integration run 35 of 35 steps ok. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>