window.msCrypto не работает внутри iframe в IE11 (но работает в главном окне) - PullRequest
0 голосов
/ 29 мая 2020

Я пытаюсь importkey с window.msCrypto. Эта функция работает в IE, когда я вызываю ее напрямую в целевом окне, но отбрасывает ошибку «Объект не поддерживает свойство или метод , тогда", когда я открываю приложение с этой функцией из iframe .

export async function importPublicKey(message, pem) {
  let crypto = window.crypto || window.msCrypto;
  const binaryDerString = window.atob(pem);
  const binaryDer = str2ab(binaryDerString);
  return crypto.subtle.importkey(
      "spki",
      binaryDer,
      {
        name: "RSA-OAEP",
        modulusLength: 2048,
        hash: {
          name: 'SHA-1'
        }
      },
      true,
      ["encrypt"]
   ).then(async (publicKey)=> {
      return await encryptMessage(message, publicKey);
   }).catch(..not important part..)
}

Я вызываю эту функцию внутри функции

await Promise.all(list.map(async (obj)=> {
   const newObj = await importPublicKey(message, pem)
}))

str2ab, если она необходимо:

function str2ab(str) {
    const buf = new ArrayBuffer(str.length);
    const bufView = new Unit8Array(buf);
    for (let i = 0; i < str.length; i++) {
       bufView[i] = str.charCodeAr(i);
    }
    return buf
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...