OpenPGP.js - Получение сообщения об ошибке: "Ошибка при расшифровке сообщения: не удалось расшифровать сеансовый ключ".

Вот часть кода, использующего openpgp.js:

const privKeyObj = (await openpgp.key.readArmored(privkey)).keys[0];
await privKeyObj.decrypt(passphrase);

options = {
 message: await openpgp.message.readArmored(encryptedData),   
 privateKeys: [privKeyObj]
};

let decrypted = await openpgp.decrypt(options)

Когда я запускаю свой код с помощью файла PGP, я получаю такую ​​ошибку: "Сообщение об ошибке: не удалось расшифровать сеансовый ключ".

Я могу расшифровать файл с помощью GPG Tools, но GPG Tools предупреждает: "Предупреждение: целостность зашифрованного файла не защищена. Без защиты целостности (отсутствие кода обнаружения модификации) невозможно определить, были ли изменены зашифрованные данные ".

Если я расшифрую файл PGP с помощью GPG Tools, а затем повторно зашифрую его в GPG, новый файл GPG отлично пройдет через мой код. Вот почему я думаю, что ошибка openpgp может быть связана с этим предупреждением MDC.

Может ли быть связана с этим ошибка openpgp.js? Если да, есть идеи, как это исправить.

1 ответ

Ваш зашифрованный файл был создан с помощью действительно старой версии протокола. Это небезопасно, поэтому, если возможно, вы должны попросить того, кто создал файл, воссоздать его с более новой версией.

В противном случае попробуйте установить config.ignore_mdc_error=true (где configэто глобальная конфигурация openpgp).

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