9 Commits
Author SHA1 Message Date
Claude CodeandClaude Opus 4.8 cc6bbcfdae CLI genkey: flache, beschreibende Schlüsseldateinamen (einheitlich zum Web)
Statt Ordnern <base>_meine_seite/ mit send.key/recv.key erzeugt genkey jetzt
vier flache Dateien <base>_{meine,partner}_seite__{send,recv}.key. So trägt der
Name Seite+Rolle -> im Browser hoch/runtergeladen überschreibt der aktualisierte
Schlüssel sauber die richtige Datei (kein generisches send.key mehr).

Interop-Runner + mjs + README an das neue Schema angepasst.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 11:47:59 +00:00
Claude CodeandClaude Opus 4.8 42929c92ae Web: aktualisierten send.key unter Originalnamen anbieten
Bisher hieß der Re-Download immer "send.key" -> überschrieb die (oft
beschreibend benannte, z.B. meine_seite__send.key) Quelldatei nicht. Jetzt wird
der Download-Name = Name der hochgeladenen Schlüsseldatei; der Link-Text nennt
ihn ebenfalls. SW-Cache v4 -> v5.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 11:43:59 +00:00
Claude CodeandClaude Opus 4.8 426d57a2b1 README: Logo-Header (zentriertes Icon + Tagline)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 11:40:44 +00:00
Claude CodeandClaude Opus 4.8 2f65935cd7 Web: PWA-Icons neu — Umschlag-Logo auf blauem Verlauf
Ersetzt die dunkle Kachel durch den weißen Umschlag auf blauem Diagonal-Verlauf
(icon-192/512.png). Reproduzierbar via web/_gen_icons.py (Pillow, Supersampling),
Logo mit Safe-Zone-Padding -> taugt auch als maskable Icon.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 11:29:24 +00:00
Claude CodeandClaude Opus 4.8 7b5be655cb Web: neues Umschlag-Logo als Favicon + im Schriftzug
- favicon.svg (transparentes SVG des Umschlag-Logos) + <link rel=icon>
- Logo neben dem "schattenpost"-Schriftzug im Header (Inline-SVG, Accent-Farbe)
- Service-Worker-Cache v3 -> v4, favicon.svg in die Offline-Shell

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 11:26:00 +00:00
Claude CodeandClaude Opus 4.8 efbc185ba0 nginx: Manifest mit korrektem MIME-Type application/manifest+json
nginx-alpine mappt .webmanifest sonst auf octet-stream -> Chrome mag den
PWA-Manifest-Type nicht sauber.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 11:10:22 +00:00
Claude CodeandClaude Opus 4.8 4b061f5af8 Coolify: docker-compose.yaml (baut aus Dockerfile)
Christian deployt über Docker Compose auf Coolify. Der Dockerfile bleibt als
Bau-Rezept, die Compose referenziert ihn (Service schattenpost, expose 80).
Domain + TLS macht Coolifys Traefik.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 11:07:23 +00:00
Claude CodeandClaude Opus 4.8 e5f834c34a Web: Repo-Link mit Gitea-Logo im Footer + Coolify-Deploy (nginx)
- Footer der Web-App verlinkt aufs Gitea-Repo mit kleinem Gitea-Logo (inline SVG)
- Dockerfile (nginx:alpine) liefert web/ statisch aus -> Coolify Git-Deploy
- deploy/nginx.conf: CSP frame-ancestors erlaubt Einbettung als iframe nur von
  gaertner.onl; sw.js/manifest ungecacht; Dev-Artefakte (_*) werden geblockt

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 11:00:14 +00:00
Claude CodeandClaude Opus 4.8 7569cd3fab SPS3: Poly1305-Einmal-MAC + Public-Ready README/LICENSE
Authentifizierung für CLI und Web:
- Poly1305 (RFC 8439) pur in Python (bigint) und JS (BigInt), keine neue Dependency
- MAC-Schluessel pro Nachricht frisch aus dem Pad (len+32), encrypt-then-MAC
  ueber Header + Ciphertext; reveal lehnt manipulierte/desynchrone Bilder hart ab
- Stego-Format SPS2 -> SPS3 (16-B-Tag im Header); alte SPS2-Bilder werden noch
  gelesen, aber als unauthentifiziert markiert
- Service-Worker-Cache auf v3 gebumpt
- Interop-Runner (web/_interop_run.sh): RFC-Vektor cross-impl, beide Richtungen,
  Tamper-Erkennung

README fuer Public ueberarbeitet (ehrliches Bedrohungsmodell, Voraussetzungen,
Projektstruktur, Tests) + MIT-LICENSE.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-15 10:46:04 +00:00