Я пытаюсь написать небольшое приложение на C ++, которое использует gpg для шифрования / дешифрования файлов. Я использую библиотеку GpgME.
Я хочу иметь возможность редактировать небольшую строку, где пользователь может ввести пароль для ключа, который он хочет использовать для расшифровки сообщения, вместо того, чтобы вызывать приложение gpg pinentry.
Я могу отключить приложение pinentry, выполнив:
gpgme_set_pinentry_mode (context, GPGME_PINENTRY_MODE_CANCEL);
Но я не могу предоставить пароль другим способом. Я гуглю уже пару недель, и, насколько я могу судить, люди говорят, что я могу написать «пользовательскую оболочку пинентри» и таким образом предоставить пароль. Я пытаюсь обернуть мой мозг вокруг этого, но я просто не могу понять, что это значит или как это сделать.
Кто-нибудь может помочь мне пролить свет на это?
Почему бы вам не захотеть использовать стандартный ввод по умолчанию и беспокоиться о безопасной обработке (главной) парольной фразы или пин-кода (для людей, использующих карты GnuPG)?
Я бы посоветовал не создавать индивидуальное решение для этой хорошо проверенной и поддерживаемой части системы GPG (2).
Других решений пока нет …