问题描述
以下是一些使用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错误可能与此有关吗?如果是这样,任何想法如何解决。
解决方法
您的加密文件是由该协议的旧版本创建的。它是不安全的,因此,如果可能的话,您应该请求创建文件的人重新创建具有最新版本的文件。
否则,请尝试设置config.ignore_mdc_error=true
(其中config
是全局openpgp config)。