firefox-passkey-background.js

1.3 KB · raw

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