DOMException при расшифровке данных RSA - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь отправить зашифрованные данные с сервера на клиент и расшифровать их с помощью 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 ]

0 голосов
/ 06 июня 2018

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

0 голосов
/ 05 июня 2018
data = Ocrypto.base64ToArrayBuffer(data);

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

...