gpg-агент в gpg2

Я пытаюсь подготовить к будущему некоторое специальное программное обеспечение, которое использует GPG (в настоящее время версия 1.4.10) для выполнения процессов симметричного шифрования/дешифрования. Моя текущая команда шифрования выглядит так:

gpg --batch --no-tty --no-use-agent --symmetric --cipher-algo AES256 --passphrase "foobar" /path/to/file_to_be_encrypted

Без опции --no-use-agent я получаю печально известное сообщение об ошибке

gpg-agent недоступен в этом сеансе

Меня беспокоит переход на gpg2, поскольку согласно документации всегда требуется gpg-agent, а --no-use-agent — просто фиктивный вариант. Мои вызовы gpg происходят в фоновом режиме через процесс демона, так что это очень сценарий без агента (плюс тот факт, что он симметричен, и мне вообще не нужен агент).

Документация на этом уровне детализации скудна, поэтому я ищу пользовательский опыт. Включает ли gpg2 агент более плотно, чтобы мне не приходилось беспокоиться о его доступности?


person Frank Koehl    schedule 10.08.2011    source источник
comment
Вы должны принять ответ синхараджа. Он дал вам все, что вам нужно знать.   -  person rsaw    schedule 29.02.2012


Ответы (1)


  1. То, как вы вызываете gpg2, может привести к ошибке, если выходной файл path/to/file_to_be_encrypted.gpg уже существует. Если вы хотите, чтобы файл был перезаписан, вы должны указать опцию --yes:

    gpg2 --batch --yes --no-tty --no-use-agent --symmetric --cipher-algo AES256 --passphrase "foobar" /path/to/file_to_be_encrypted
    
  2. Когда вы используете симметричное шифрование (как вы это делаете), ограничения парольной фразы (даже если установлено значение принудительно gpg-agent) вообще не будут применяться, они просто будут работать.

    Скажем, gpg-agent запускался вот так (и пусть файл mypasswords даже содержит запрещенный шаблон, точно соответствующий вашему паролю):

    eval $(gpg-agent --daemon --enforce-passphrase-constraints --min-passphrase-len 8 --min-passphrase-nonalpha 4 --check-passphrase-pattern mypasswords)
    

    Тогда ваша команда все равно будет успешной.

    Вкратце: gpg-agent не приведет к его сбою (если только он не приведет к сбою gpg по какой-то причине, такой как неправильная конфигурация или отсутствие исполняемого файла, которые вы не можете объяснить).

    EDIT: я только что проверил, и в симметричном режиме gpg2 будет работать, даже если gpg-agent настроен неправильно или если исполняемый файл gpg-agent пропал, отсутствует.

    Это не связано, но на всякий случай: я также проверил, что происходит, когда вы пытаетесь изменить пароль своего закрытого ключа, когда gpg-agent отсутствует или неправильно настроен: gpg2 сообщит о предупреждении, даже не будет запрашивать новую парольную фразу и продолжит работу.

Источники:

person sinharaj    schedule 19.08.2011