我正在尝试使用OpenPGPJ解密文本。 该消息是使用以下命令通过gpg使用4096位RSA密钥生成的:
gpg --encrypt --armor -r myemail@pm.com test.txt
我遵循了OpenPGPJS文档,但是以下代码返回了一个空的解密对象,如下所示:
{纯文本:{签名:[],数据:”,文件名:null}}
const pubKey = `-----BEGIN PGP PUBLIC KEY BLOCK-----
...
-----END PGP PUBLIC KEY BLOCK-----`
const privKey = `-----BEGIN PGP PRIVATE KEY BLOCK-----
...
-----END PGP PRIVATE KEY BLOCK-----`
const encryptedText = `-----BEGIN PGP MESSAGE-----
...
-----END PGP MESSAGE-----`
const passphrase = 'my password'
export const decryptFunc = async() => {
try{
const privateKey = (await openpgp.key.readArmored(privKey)).keys[0]
await privateKey.decrypt(passphrase)
const options = {
message: await openpgp.message.readArmored(encryptedText),
publicKeys: (await openpgp.key.readArmored(pubKey)).keys,
privateKeys: privateKey,
}
return openpgp.decrypt(options).then(plaintext => {
console.log({plaintext})
return plaintext.data
})
}catch(error) {
console.log({error});
}
}
解密后的消息不应为空,库也不会抛出任何异常,此外,我还可以使用GPG对消息进行解密:
gpg --decrypt test.txt.asc
我做错了吗?