1const CREATE_CREDENTIAL_ID = "AQIDBA";2const GET_CREDENTIAL_ID = "BQYHCA";34browser.runtime.onMessage.addListener((message) => {5 if (message?.type === "PASSKEY_HAS_CREDENTIALS") {6 return Promise.resolve({ ok: true, hasCredentials: message.payload.allowCredentials[0]?.id === GET_CREDENTIAL_ID });7 }8 if (message?.type === "PASSKEY_CREATE") {9 if (message.payload.challenge !== "AQIDBA" || message.payload.userId !== "BQYHCA") {10 return Promise.resolve({ ok: false, error: "corrupted_page_buffer" });11 }12 return Promise.resolve({13 ok: true,14 credential: {15 type: "create",16 id: CREATE_CREDENTIAL_ID,17 clientDataJSON: message.payload.clientDataJSON,18 attestationObject: "AQ",19 authenticatorData: "Ag",20 publicKey: "Aw",21 algorithm: -7,22 },23 });24 }25 if (message?.type === "PASSKEY_GET") {26 if (message.payload.challenge !== "AQIDBA" || message.payload.allowCredentials[0]?.id !== GET_CREDENTIAL_ID) {27 return Promise.resolve({ ok: false, error: "corrupted_page_buffer" });28 }29 return Promise.resolve({30 ok: true,31 credential: {32 type: "get",33 id: GET_CREDENTIAL_ID,34 clientDataJSON: message.payload.clientDataJSON,35 authenticatorData: "Ag",36 signature: "Aw",37 userHandle: "BA",38 },39 });40 }41 return undefined;42});