Я пытаюсь расшифровать текст с помощью OpenPGPJs.Сообщение было сгенерировано с помощью 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
Я делаю это неправильно?