Intereting Posts
Вытяните несколько строк данных из 2 столбцов в нескольких местах Kernel Panic на 3.14.0-gentoo на трассе IBM 9228LGA / SMP Загляните в содержание stdin Использование sed для замены специальных символов Vim, контекстно-зависимое поведение комментариев / неудобств Могу ли я писать на одном и том же ресурсе NFS из нескольких ОС? Есть ли простой надежный способ перевода команд из Ubuntu в Debian и наоборот? Характеристики полосы пропускания, CPU и памяти возвращаются в одной строке от терминала Создайте псевдоним, чтобы заменить строку без $ VARIABLE, в bash cli альтернатива nslookup в rhel7? Предел HP-UX SZ для ps? mount iso image: сообщение «блочное устройство защищено от записи, установка только для чтения»! читать определенные строки из файла 403 Запрещенная ошибка при попытке подключения к репозиториям ubuntu Как удалить повторяющиеся записи в диалоговом окне «Открыть с помощью» Nautilus?

Что означает код ошибки gpg 2 (GPG_ERR_UNKNOWN_PACKET)?

Мне поручено объяснить вариацию ошибок gpg, которые произошли в одном из моих сценариев. В настоящее время, когда я выполняю gpg-расшифровку для указанного файла, он возвращает 2. Проблема с этим заключается в том, что я просматриваю форму, она показывает, что файл был дешифрован правильно, но код ошибки вызывает остановку скрипта, поскольку он предположил, что 0 это единственное значение успеха.

gpg -o XXX --decrypt XXX.gpg RETVAL=$? if [ RETVAL -ne 0 ]; then exit 1 fi 

Я обыскал сеть и нашел список заголовков для gpg. Он определяет ошибку 2 как Unknown Packet.

http://www.gnu-darwin.org/www001/src/ports/security/libgpg-error/work/libgpg-error-1.5/src/err-codes.h.in

Отображаемый обычный текст ошибки: [gpg: [не знаю]: неверный пакет (ctb = 14)]. Что именно означает неизвестный пакет? Я пытаюсь искать любые документы по пониманию кодов ошибок. После отображения всей подробной информации с помощью опции [-vv]. Я сравнил полученное дешифрование файла gpg с файлом, который возвращает 0 кода. Единственное, что я заметил, это байт ключа.

Дешифрование gpg без ошибок имеет следующий журнал:

 :pubkey enc packet: version 3, algo 16, keyid <16-hexdigit> data 1023 bits data 1024 bits 

Дешифрование ошибки, вызванной gpg, имеет следующий журнал:

 :pubkey enc packet: version 3, algo 16, keyid <16-hexdigit> data 1022 bits data 1022 bits 

Что это значит? почему он все еще может быть дешифрован правильно, даже если бит ключа не является одинаковым? Обратите внимание, что ключ-идентификатор и кодовая фраза, используемые для дешифрования двух файлов, одинаковы. Кроме того, кто-нибудь знает какой-либо подробный ресурс об объяснении ошибки gpg.

Во многом используемые коды GPF имеют три типа:

  1. 0 – успех (все остальные значения указывают на сбой).
  2. 2 обычно используется для непредвиденных ошибок.
  3. 1 для таких вещей, как BAD-подпись.

Правильный способ определения ошибки заключается в интерпретации вывода –status-fd.

Теперь для конкретного Вопроса, который вы используете, могут быть две причины:

  1. GPG спрашивает, хотите ли вы продолжить шифрование с помощью неподписанного ключа. Поскольку пользователь не может вводить Y, он выдает ошибку.

Чтобы исправить это, выполните следующие действия:

  --yes and --always-trust 
  1. Это также может быть проблемой разрешения. gpg пытается получить доступ к каталогу, к которому у него нет доступа, поэтому он терпит неудачу с фатальной ошибкой. (код ошибки 2)

Вы можете исправить это, указав директиву homedir с каталогом, записываемым gpg. Как это:

  $cmd = "/usr/bin/gpg -a --recipient $to -e -o $outfile $infile --homedir /path/to/dir"; 

Информация от человека gpg:

  --homedir directory Set the name of the home directory to directory If this option is not used it defaults to "~/.gnupg". It does not make sense to use this in a options file. This also overrides the environment variable $GNUPGHOME. 

Вы также можете использовать эту ссылку, чтобы узнать больше об этом.

Надеюсь, это поможет вам.

Один из способов использования status-fd в linux состоит в следующем: GPG = «$ {PGP_LOCATION} gpg –status-fd 2 –passphrase-fd 0 –no-verbose –batch –output $ {OUTPUT} – -decrypt $ {DOUTPUT} "# echo" GPG: $ {GPG} "$ {GPG} 2> & 1 >> $ {STATUS} <$ {PASSFILE}


Обратите внимание, что все переменные оболочки настроены так, чтобы указывать на правильные значения. Выход из gpg записывается в $ {STATUS} (файл) …