Auto-generate encryption key if none exists instead of throwing
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
31578db1bc
commit
2321b80127
1 changed files with 5 additions and 2 deletions
|
|
@ -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) {
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue