Django internet radio player
Find a file
marwin 50f711831c TUI: Verschlüsselungs-Key per Benutzername+Passwort ableiten statt Konsolen-Export
diora_tui/crypto.py:derive_key_b64 reproduziert app.js' deriveAndStoreKey()
(PBKDF2-HMAC-SHA256, 200000 Iterationen, Salt "diora:"+username) — der
`sync`-Prompt bietet das jetzt als Standardweg zum Schlüssel an, als
Alternative zum bisherigen Weg über die Browser-Konsole (await
exportEncKey()). Funktioniert nur für Accounts, die den Key je über
diora's "Unlock with password"-Formular abgeleitet haben; ein falsches
Passwort/Account führt zu einem abgefangenen DecryptError ("falscher
Key?"), nie zu stillem Fehlverhalten.

Getestet: zwei unabhängige PBKDF2-Implementierungen (hashlib,
cryptography) stimmen für die verwendeten Parameter byte-genau überein;
vollständiger sync-Lauf gegen einen echten Dev-Server mit einem Buch, das
unter einem exakt so abgeleiteten Key verschlüsselt wurde, entschlüsselt
korrekt; falsches Passwort wird sauber als Fehler gemeldet statt
abzustürzen.
2026-08-15 16:55:03 +02:00
.forgejo/workflows Show build time in bottom-right corner 2026-03-19 21:35:41 +01:00
accounts Sync-API für lokale Clients: Personal-Access-Token + GET /api/sync/ 2026-08-15 16:20:54 +02:00
books Books: Notizen-Sidebar auto-öffnen, Notizen-Download + Gelesen-Status in Übersicht (SW v29) 2026-08-04 18:10:33 +02:00
diora Sync-API für lokale Clients: Personal-Access-Token + GET /api/sync/ 2026-08-15 16:20:54 +02:00
e2e Reader/UI: mehrere Fixes + Playwright-Setup (SW v21) 2026-08-04 09:01:52 +02:00
gpodder Fix gpodder: add update_urls to episode actions POST response 2026-03-28 19:08:46 +01:00
podcasts Centralize remaining magic numbers in settings.py 2026-04-04 21:10:14 +02:00
radio Centralize remaining magic numbers in settings.py 2026-04-04 21:10:14 +02:00
static Reader: Toast-Optik repariert — Button-Font und doppelter Textschatten (SW v35) 2026-08-15 00:02:05 +02:00
templates Sync-API für lokale Clients: Personal-Access-Token + GET /api/sync/ 2026-08-15 16:20:54 +02:00
tui TUI: Verschlüsselungs-Key per Benutzername+Passwort ableiten statt Konsolen-Export 2026-08-15 16:55:03 +02:00
.env.example Initial commit 2026-03-16 19:19:22 +01:00
.gitignore Reader/UI: mehrere Fixes + Playwright-Setup (SW v21) 2026-08-04 09:01:52 +02:00
docker-compose.yml Add podcast feature with feed management, Docker cron, and ebook reader assets 2026-03-19 13:39:59 +01:00
Dockerfile Show build time in bottom-right corner 2026-03-19 21:35:41 +01:00
Dockerfile.cron Fix cron container: switch dcron→cron, export env vars for cron jobs 2026-03-20 09:16:29 +01:00
manage.py Initial commit 2026-03-16 19:19:22 +01:00
package-lock.json Reader/UI: mehrere Fixes + Playwright-Setup (SW v21) 2026-08-04 09:01:52 +02:00
package.json Reader/UI: mehrere Fixes + Playwright-Setup (SW v21) 2026-08-04 09:01:52 +02:00
playwright.config.js Reader/UI: mehrere Fixes + Playwright-Setup (SW v21) 2026-08-04 09:01:52 +02:00
requirements.txt Use gevent workers in gunicorn to fix SSE blocking 2026-03-19 19:15:01 +01:00