Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 30 additions & 4 deletions auth/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,9 @@ <h2>Message log</h2>
/**
* Creates a new public/private key pair and persists it in localStorage
*/
var initEmbeddedKey = async function (ttl = TURNKEY_EMBEDDED_KEY_TTL_IN_MILLIS) {
var initEmbeddedKey = async function (
ttl = TURNKEY_EMBEDDED_KEY_TTL_IN_MILLIS
) {
var retrievedKey = await getEmbeddedKey();
if (retrievedKey === null) {
var targetKey = await generateTargetKey();
Expand Down Expand Up @@ -208,7 +210,10 @@ <h2>Message log</h2>
}
};

var setEmbeddedKey = function (targetKey, ttl = TURNKEY_EMBEDDED_KEY_TTL_IN_MILLIS) {
var setEmbeddedKey = function (
targetKey,
ttl = TURNKEY_EMBEDDED_KEY_TTL_IN_MILLIS
) {
return setItemWithExpiry(
TURNKEY_EMBEDDED_KEY,
JSON.stringify(targetKey),
Expand Down Expand Up @@ -1003,6 +1008,7 @@ <h2>Message log</h2>

return {
initEmbeddedKey,
getEmbeddedKey,
generateTargetKey,
setItemWithExpiry,
getItemWithExpiry,
Expand Down Expand Up @@ -1109,7 +1115,6 @@ <h2>Message log</h2>
TKHQ.sendMessageUp("ERROR", e.toString(), event.data["requestId"]);
}
}
// This is localized just to the button on the actual page
if (event.data && event.data["type"] == "RESET_EMBEDDED_KEY") {
TKHQ.logMessage(`⬇️ Received message ${event.data["type"]}`);
try {
Expand All @@ -1118,6 +1123,14 @@ <h2>Message log</h2>
TKHQ.sendMessageUp("ERROR", e.toString());
}
}
if (event.data && event.data["type"] == "GET_EMBEDDED_PUBLIC_KEY") {
TKHQ.logMessage(`⬇️ Received message ${event.data["type"]}`);
try {
await onGetEmbeddedPublicKey(event.data["requestId"]);
} catch (e) {
TKHQ.sendMessageUp("ERROR", e.toString());
}
}
};

/**
Expand All @@ -1126,7 +1139,8 @@ <h2>Message log</h2>
document.addEventListener(
"DOMContentLoaded",
async function () {
window.isInitEmbeddedKeyRunByDomContentLoaded = await TKHQ.initEmbeddedKey();
window.isInitEmbeddedKeyRunByDomContentLoaded =
await TKHQ.initEmbeddedKey();
var embeddedKeyJwk = await TKHQ.getEmbeddedKey();
var targetPubBuf = await TKHQ.p256JWKPrivateToPublic(embeddedKeyJwk);
var targetPubHex = TKHQ.uint8arrayToHexString(targetPubBuf);
Expand Down Expand Up @@ -1254,6 +1268,18 @@ <h2>Message log</h2>
TKHQ.sendMessageUp("BUNDLE_INJECTED", true, requestId);
};

/**
* Function triggered when GET_EMBEDDED_PUBLIC_KEY event is received.
* @param {string} requestId: idempotency key
*/
var onGetEmbeddedPublicKey = async function (requestId) {
var embeddedKeyJwk = await TKHQ.getEmbeddedKey();
var targetPubBuf = await TKHQ.p256JWKPrivateToPublic(embeddedKeyJwk);
var targetPubHex = TKHQ.uint8arrayToHexString(targetPubBuf);

TKHQ.sendMessageUp("EMBEDDED_PUBLIC_KEY", targetPubHex, requestId);
};

/**
* Function triggered when STAMP_REQUEST event is received.
* @param {string} payload: payload to sign
Expand Down
1 change: 0 additions & 1 deletion export/index.template.html
Original file line number Diff line number Diff line change
Expand Up @@ -948,7 +948,6 @@ <h2>Message log</h2>
TKHQ.sendMessageUp("ERROR", e.toString(), event.data["requestId"]);
}
}
// This is localized just to the button on the actual page
if (event.data && event.data["type"] == "RESET_EMBEDDED_KEY") {
TKHQ.logMessage(`⬇️ Received message ${event.data["type"]}`);
try {
Expand Down
Loading