Compare commits
4 Commits
v0.1.0-dev
...
v0.1.0-dev
Author | SHA1 | Date |
---|---|---|
semantic-release-bot | 425b478800 | |
Derrick Hammer | 1138e45486 | |
Derrick Hammer | 25d2f6b1c0 | |
Derrick Hammer | 85615350f0 |
12
CHANGELOG.md
12
CHANGELOG.md
|
@ -1,3 +1,15 @@
|
|||
# [0.1.0-develop.56](https://git.lumeweb.com/LumeWeb/libkernel/compare/v0.1.0-develop.55...v0.1.0-develop.56) (2023-09-11)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* use newBootloaderQuery ([25d2f6b](https://git.lumeweb.com/LumeWeb/libkernel/commit/25d2f6b1c09e13b876419fa2262aaa9cbc20a919))
|
||||
|
||||
|
||||
### Features
|
||||
|
||||
* add newBootloaderQuery method ([8561535](https://git.lumeweb.com/LumeWeb/libkernel/commit/85615350f097345ee36bc5d0bcb482a363e83291))
|
||||
|
||||
# [0.1.0-develop.55](https://git.lumeweb.com/LumeWeb/libkernel/compare/v0.1.0-develop.54...v0.1.0-develop.55) (2023-09-11)
|
||||
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
{
|
||||
"name": "@lumeweb/libkernel",
|
||||
"version": "0.1.0-develop.55",
|
||||
"version": "0.1.0-develop.56",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@lumeweb/libkernel",
|
||||
"version": "0.1.0-develop.55",
|
||||
"version": "0.1.0-develop.56",
|
||||
"dependencies": {
|
||||
"@lumeweb/libweb": "0.2.0-develop.57",
|
||||
"emittery": "^1.0.1",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "@lumeweb/libkernel",
|
||||
"version": "0.1.0-develop.55",
|
||||
"version": "0.1.0-develop.56",
|
||||
"main": "lib/index.js",
|
||||
"type": "module",
|
||||
"types": "lib/index.d.ts",
|
||||
|
|
|
@ -5,6 +5,7 @@ import {
|
|||
kernelLoadedDefer,
|
||||
loginDefer,
|
||||
logoutDefer,
|
||||
newBootloaderQuery,
|
||||
newKernelQuery,
|
||||
} from "./queries.js";
|
||||
import { Err } from "#types.js";
|
||||
|
@ -85,35 +86,25 @@ async function login(key: Uint8Array) {
|
|||
return;
|
||||
}
|
||||
|
||||
let pubKeyRet = await newKernelQuery(
|
||||
"exchangeCommunicationKeys",
|
||||
{
|
||||
data: bytesToHex(x25519.getPublicKey(privKey)),
|
||||
},
|
||||
false,
|
||||
);
|
||||
let pubKeyRet = await newBootloaderQuery("exchangeCommunicationKeys", {
|
||||
data: bytesToHex(x25519.getPublicKey(privKey)),
|
||||
});
|
||||
|
||||
let pubKeyT = await pubKeyRet[1];
|
||||
|
||||
if (pubKeyT[1]) {
|
||||
alert(`Failed to login: could not get communication key: ${pubKeyT}`);
|
||||
if (pubKeyRet.err) {
|
||||
alert(`Failed to login: could not get communication key: ${pubKeyRet.err}`);
|
||||
return;
|
||||
}
|
||||
|
||||
let pubKey = hexToBytes(pubKeyT[1]?.[0] as string);
|
||||
let pubKey = hexToBytes(pubKeyRet.data);
|
||||
|
||||
const secret = x25519.getSharedSecret(privKey, pubKey);
|
||||
const nonce = randomBytes(24);
|
||||
const box = secretbox(secret, nonce);
|
||||
const ciphertext = box.seal(key);
|
||||
await newKernelQuery(
|
||||
"setLoginKey",
|
||||
{
|
||||
data: bytesToHex(ciphertext),
|
||||
nonce: bytesToHex(nonce),
|
||||
},
|
||||
false,
|
||||
);
|
||||
await newBootloaderQuery("setLoginKey", {
|
||||
data: bytesToHex(ciphertext),
|
||||
nonce: bytesToHex(nonce),
|
||||
});
|
||||
}
|
||||
|
||||
export { loginComplete, kernelLoaded, logoutComplete, openAuthWindow, login };
|
||||
|
|
|
@ -677,6 +677,29 @@ function newKernelQuery(
|
|||
return [sendUpdate, p];
|
||||
}
|
||||
|
||||
function newBootloaderQuery(method: string, data: any): Promise<any> {
|
||||
return new Promise((resolve) => {
|
||||
let receiveResponse = function (data: any) {
|
||||
resolve(data.data);
|
||||
};
|
||||
|
||||
initDefer.promise.then(() => {
|
||||
if (getKernelIframe().contentWindow === null) {
|
||||
console.error(
|
||||
"kernelFrame.contentWindow was null, cannot send message!",
|
||||
);
|
||||
return;
|
||||
}
|
||||
let nonce = nextNonce();
|
||||
queries[nonce] = { resolve: receiveResponse };
|
||||
getKernelIframe().contentWindow?.postMessage(
|
||||
{ method, data },
|
||||
kernelOrigin,
|
||||
);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export {
|
||||
callModule,
|
||||
connectModule,
|
||||
|
@ -688,4 +711,5 @@ export {
|
|||
newKernelQuery,
|
||||
serviceWorkerReady,
|
||||
getKernelIframe,
|
||||
newBootloaderQuery,
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue