Compare commits

...

4 Commits

Author SHA1 Message Date
semantic-release-bot 425b478800 chore(release): 0.1.0-develop.56 [skip ci]
# [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](25d2f6b1c0))

### Features

* add newBootloaderQuery method ([8561535](85615350f0))
2023-09-11 10:43:32 +00:00
Derrick Hammer 1138e45486
Merge remote-tracking branch 'origin/develop' into develop 2023-09-11 06:42:38 -04:00
Derrick Hammer 25d2f6b1c0
fix: use newBootloaderQuery 2023-09-11 06:42:32 -04:00
Derrick Hammer 85615350f0
feat: add newBootloaderQuery method 2023-09-11 06:41:17 -04:00
5 changed files with 50 additions and 23 deletions

View File

@ -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)

4
npm-shrinkwrap.json generated
View File

@ -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",

View File

@ -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",

View File

@ -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 };

View File

@ -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,
};