Код ошибки GPG 2

В результате GPG всегда возвращает 2. Мой код выглядит следующим образом

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

Где outfile – файл, в котором зашифрованные данные будут записаны, а infile – незашифрованные данные.

Я не знаю, почему это происходит. Может кто-нибудь, пожалуйста, скажите мне, что случилось. Благодарю.

Solutions Collecting From Web of "Код ошибки GPG 2"

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

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

--yes и – --always-trust

См. Это сообщение: http://lists.gnupg.org/pipermail/gnupg-users/2008-January/032410.html

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

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

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

Информация от man gpg :

–homedir каталог
Задайте имя домашнего каталога в каталог

Если этот параметр не используется, он по умолчанию имеет значение «~ / .gnupg». Не имеет смысла использовать это в файле опций. Это также переопределяет переменную среды $ GNUPGHOME.

Вы также можете захотеть добавить ключ к списку доверенных ключей:

 gpg.exe --edit-key KEY_NAME trust 5 (level of trust) Y Save 

У меня возникли проблемы с параметром --always-trust не работает должным образом в окнах XP, это помогло мне решить проблему.

У меня была та же проблема, но для команды декодирования

Сначала и вообще вы можете получить сообщение об ошибке, перенаправляя stderr на stdout.

 $cmd = "/usr/bin/gpg -a --recipient $to -e -o $outfile $infile 2>&1"; 

Затем вы можете изменить параметры gpg в соответствии с вашими потребностями. Поскольку у меня были файлы, зашифрованные с помощью ключа с фразой, мне пришлось добавить несколько параметров.

Я начал с

 gpg -o $out -d $path 

Но он жаловался, что он не может открыть tty, а затем –no-tty выводит некоторые другие ошибки, и, наконец, команда для декодирования файлов с ключом с фразой pass

 gpg --batch --passphrase $pass_phrase --no-tty -o $outfile -d $path_to_encoded_file 

Я надеюсь, что это помогает кому-то.