#015 authorized_keys: Parser und Merge #15

Closed
opened 2026-10-12 15:12:40 +00:00 by florian.wilde · 0 comments
Owner

Ziel

Reine Funktionen zum Lesen und Schreiben von authorized_keys mit verwaltetem Block.

Aufgaben

  • Optionen mit Anführungszeichen
  • CRLF, BOM, Kommentare, Duplikate
  • Block erzeugen/ersetzen, Rest bytegenau
  • Aussperrschutz Deployment-Key

Akzeptanzkriterien

  • Umfangreiche Unit-Tests der Randfälle

Abhängigkeiten

#001

Notizen / Entscheidungen

  • Bytegenau: Zeilen werden an \n getrennt, ein \r bleibt Teil der Zeile; BOM und fehlende letzte Zeilenschaltung bleiben erhalten. Einzige Änderung außerhalb des Blocks: Fehlt der Block und der letzten Zeile die Zeilenschaltung, bekommt sie eine – sonst stünde der Block-Anfang in derselben Zeile.
  • CRLF-Dateien (überwiegend \r\n) bekommen auch im Block CRLF.
  • Beschädigter Block (Anfang ohne Ende, mehrere Blöcke, Ende vor Anfang): nie automatisch schreiben, BlockFehler mit Bitte um Handarbeit.
  • Erkennung am Fingerprint, nicht am Kommentar; der Typ im Blob muss zum Zeilentyp passen.
  • Optionen: Parser wie sshd (Kommas in Anführungszeichen, \"). Für Benutzereingaben strenger: nur bekannte Optionen, keine Steuerzeichen.
  • Aussperrschutz: Ein pflicht-Fingerprint (Deployment-Key), der im Block stand, darf nicht verschwinden.
  • Diff per LCS, für die Anzeige verdichtet (je 2 Zeilen Kontext).

Quelle: docs/issues/015-authorized-keys-parser.md – dort wird dieses Issue gepflegt.

## Ziel Reine Funktionen zum Lesen und Schreiben von `authorized_keys` mit verwaltetem Block. ## Aufgaben - [x] Optionen mit Anführungszeichen - [x] CRLF, BOM, Kommentare, Duplikate - [x] Block erzeugen/ersetzen, Rest bytegenau - [x] Aussperrschutz Deployment-Key ## Akzeptanzkriterien - [x] Umfangreiche Unit-Tests der Randfälle ## Abhängigkeiten #001 ## Notizen / Entscheidungen - **Bytegenau:** Zeilen werden an `\n` getrennt, ein `\r` bleibt Teil der Zeile; BOM und fehlende letzte Zeilenschaltung bleiben erhalten. Einzige Änderung außerhalb des Blocks: Fehlt der Block und der letzten Zeile die Zeilenschaltung, bekommt sie eine – sonst stünde der Block-Anfang in derselben Zeile. - **CRLF-Dateien** (überwiegend `\r\n`) bekommen auch im Block CRLF. - **Beschädigter Block** (Anfang ohne Ende, mehrere Blöcke, Ende vor Anfang): nie automatisch schreiben, `BlockFehler` mit Bitte um Handarbeit. - **Erkennung am Fingerprint**, nicht am Kommentar; der Typ im Blob muss zum Zeilentyp passen. - **Optionen:** Parser wie sshd (Kommas in Anführungszeichen, `\"`). Für Benutzereingaben strenger: nur bekannte Optionen, keine Steuerzeichen. - **Aussperrschutz:** Ein `pflicht`-Fingerprint (Deployment-Key), der im Block stand, darf nicht verschwinden. - Diff per LCS, für die Anzeige verdichtet (je 2 Zeilen Kontext). --- Quelle: `docs/issues/015-authorized-keys-parser.md` – dort wird dieses Issue gepflegt.
florian.wilde added this to the v0.2.0 milestone 2026-10-12 15:12:40 +00:00
florian.wilde added the backendtest labels 2026-10-12 15:12:40 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: florian.wilde/sshkeyvault#15