This repository has been archived on 2023-12-17. You can view files and clone it, but cannot push or open issues or pull requests.
extension/src/main/bootloader/vars.ts

65 lines
1.5 KiB
TypeScript

import { Client } from "@lumeweb/libportal";
import { x25519 } from "@noble/curves/ed25519";
let loginComplete = false;
let logoutComplete = false;
let kernelLoaded = "not yet";
let bootloaderPortals: Client[] = [];
let communicationKey: Uint8Array;
let frontendCommunicationPubKey: Uint8Array;
var userKey: Uint8Array;
export const defaultKernelLink =
"zduFSV7fLr7GeucUQFgxzq877rmMAbALz19nDHMtBEwz1eoGcKeQt3Lzfh";
export function setLoginComplete(status: boolean) {
loginComplete = status;
}
export function getLoginComplete() {
return loginComplete;
}
export function setLogoutComplete(status: boolean) {
logoutComplete = status;
}
export function getLogoutComplete() {
return logoutComplete;
}
export function setKernelLoaded(status: string) {
kernelLoaded = status;
}
export function getKernelLoaded() {
return kernelLoaded;
}
export function setUserKey(key: Uint8Array) {
userKey = key;
}
export function getUserKey() {
return userKey;
}
export function setBootloaderPortals(portals: Client[]) {
bootloaderPortals = portals;
}
export function getCommunicationKey() {
if (!communicationKey) {
communicationKey = x25519.utils.randomPrivateKey();
}
return communicationKey;
}
export function getCommunicationPubKey() {
return x25519.getPublicKey(getCommunicationKey());
}
export function getFrontendCommunicationPubkey() {
return frontendCommunicationPubKey;
}
export function setFrontendCommunicationPubkey(key: Uint8Array) {
frontendCommunicationPubKey = key;
}