25 lines
759 B
TypeScript
25 lines
759 B
TypeScript
/// Single module-scope "current" SessionHandle.
|
||
///
|
||
/// α assumes one vault per extension install. The master key lives only
|
||
/// inside WASM linear memory (wrapped in Zeroizing<[u8;32]>); this module
|
||
/// just holds the opaque handle that names it.
|
||
|
||
import type { SessionHandle } from '../../wasm/relicario_wasm';
|
||
|
||
let current: SessionHandle | null = null;
|
||
|
||
export function setCurrent(h: SessionHandle): void { current = h; }
|
||
|
||
export function getCurrent(): SessionHandle | null { return current; }
|
||
|
||
export function requireCurrent(): SessionHandle {
|
||
if (!current) throw new Error('vault_locked');
|
||
return current;
|
||
}
|
||
|
||
export function clearCurrent(): void {
|
||
if (!current) return;
|
||
try { current.free(); } catch { /* already freed */ }
|
||
current = null;
|
||
}
|