Расшифровать с OpenPGPJs возвращает пустое - PullRequest
0 голосов
/ 24 декабря 2018

Я пытаюсь расшифровать текст с помощью 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

Я делаю это неправильно?

...