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