DOMException при расшифровке данных RSA

Я пытаюсь отправить зашифрованные данные с сервера на клиент и расшифровать их с помощью window.crypto.subtle.decrypt(), Но у меня есть ошибка без описания. Как я могу это исправить?

Код сервера node.js:

const sharedKey = (req, res, next) => {
  let crypto = require('crypto');

  let buf = Buffer.from('Hello, my friend');

  const key = {
    key: req.body.public,
    padding: crypto.constants.RSA_PKCS1_OAEP_PADDING
  }

  try {
    let encrypted = crypto.publicEncrypt(key, buf);
    res.send(encrypted.toString('base64'));
  } catch (err) {
    console.log('err', err)
  }
};

код клиента:

$.post('/register', {
  'login': login,
  'public': publicKeyPEM
}, function(data) {
  console.log('data', data);
  data = Ocrypto.base64ToArrayBuffer(data);
  try {
    window.crypto.subtle.decrypt({
          name: "RSA-OAEP",
          //label: Uint8Array([...]) //optional
        },
        keyPair.privateKey, //from generateKey or importKey above
        data //ArrayBuffer of the data
      )
      .then(function(decrypted) {
        //returns an ArrayBuffer containing the decrypted data
        console.log(new Uint8Array(decrypted));
      })
      .catch(function(err) {
        console.log("ERRRRRR", err);
      });
  } catch (error) {
    console.log('err', err)

  }
});

Это то, что я получил в консоли: "ERRRRRR DOMException"

2 ответа

data = Ocrypto.base64ToArrayBuffer(data);

Похоже, у вас есть опечатка там.

Я не знаю, как решить эту проблему, но я нашел другой способ, как сделать мой проект работает. Я использую node-rsa на сервере и на клиенте после встраивания с помощью http://browserify.org/

Другие вопросы по тегам