Auto-generate encryption key if none exists instead of throwing
All checks were successful
Build and push Docker image / build (push) Successful in 12s
Test / test (push) Successful in 15s

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
marwin 2026-03-19 21:14:16 +01:00
parent 31578db1bc
commit 2321b80127

View file

@ -1820,9 +1820,12 @@ async function getOrCreateEncKey() {
const raw = base64ToBytes(stored); const raw = base64ToBytes(stored);
_encKey = await crypto.subtle.importKey('raw', raw, {name: 'AES-GCM'}, false, ['encrypt', 'decrypt']); _encKey = await crypto.subtle.importKey('raw', raw, {name: 'AES-GCM'}, false, ['encrypt', 'decrypt']);
return _encKey; return _encKey;
} catch (e) { /* fall through */ } } catch (e) { /* fall through, generate new */ }
} }
throw new Error('No encryption key found. Please log out and log in again to unlock encrypted content.'); _encKey = await crypto.subtle.generateKey({name: 'AES-GCM', length: 256}, true, ['encrypt', 'decrypt']);
const raw = await crypto.subtle.exportKey('raw', _encKey);
localStorage.setItem(storageKey, bytesToBase64(new Uint8Array(raw)));
return _encKey;
} }
async function encryptBytes(key, plainBytes) { async function encryptBytes(key, plainBytes) {