【问题标题】:OpenPGP.js - Getting an error: "Error decrypting message: Session key decryption failed."OpenPGP.js - 出现错误:“错误解密消息:会话密钥解密失败。”
【发布时间】:2021-01-22 20:56:21
【问题描述】:

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

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

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

【问题讨论】:

    标签: pgp openpgp openpgp.js session-keys


    【解决方案1】:

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

    否则,请尝试设置config.ignore_mdc_error=true(其中config 是全局openpgp config)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-18
      • 2021-11-13
      • 2015-04-03
      • 1970-01-01
      • 2016-10-07
      • 1970-01-01
      • 1970-01-01
      • 2011-04-12
      相关资源
      最近更新 更多