2

下面是一些使用 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 工具解密文件,但 GPG 工具会发出警告:“警告:加密文件未受到完整性保护。如果没有完整性保护(缺失修改检测代码),则无法确定加密数据是否已被修改。”</p>

如果我使用 GPG 工具解密 PGP 文件,然后在 GPG 中重新加密,则新的 GPG 文件可以很好地运行我的代码。这就是为什么我认为 openpgp 错误可能与该 MDC 警告有关。

这个 openpgp.js 错误是否与此有关?如果是这样,任何想法如何解决它。

4

1 回答 1

0

您的加密文件是由非常旧的协议版本创建的。这是不安全的,因此如果可能,您应该要求创建文件的人使用更新的版本重新创建它。

否则,尝试设置config.ignore_mdc_error=trueconfig全局 openpgp配置在哪里)。

于 2020-10-21T19:41:09.933 回答