Мне нужно расшифровать в браузере сообщение, закодированное с помощью AES-CTR 256 бит (закодированное с использованием OpenSSL).
Используя OpenSSL, я получаю что-то вроде:
key=189BBBB00C5F1FB7FBA9AD9285F193D1771D7611CB891E5C1F4E24C20E50FB1D
iv =4103C88663AE12CE18EA46E894280C4D
msg=nhVKeu8zNO2PRTwJrDE=
Что ж, моя проблема заключается в преобразовании этих строк в объекты, которыми могут управлять window.crypto.subtle
API. Например.
const counter = ???;
const ciphertext = ???;
const rawKey = ???;
const key = window.crypto.subtle.importKey(
"raw",
key,
"AES-CTR",
true,
["encrypt", "decrypt"]
);
const decrypted = await window.crypto.subtle.decrypt(
{
name: "AES-CTR",
counter,
length: 64
},
key,
ciphertext
);
let dec = new TextDecoder();
const msg = dec.decode(decrypted);
console.log(msg);
Может ли кто-нибудь помочь мне перейти от key
, iv
, msg
к counter
, ciphertext
, rawkey
?
Большое тебе спасибо