![]() | Spurious CRYPTKEYFETCHFAILED errors |
---|---|
A defect that affects GnuPG 2.0+ versions causes the gpg-agent to fail decrypting the GnuPG private key that secures the database encryption key. This decryption failure results in spurious CRYPTKEYFETCHFAILED errors during process startup or re-encryption. This defect appears more frequently with GnuPG releases starting at 2.1.15. At the time of this writing, Ubuntu 17.04 - 17.10, Debian 9 and Fedora 26 - 27 all have the affected GnuPG versions. However Fedora 26 - 27 are slated to receive fixed versions. GPG versions 2.1.15 and up suffer from persistent CRYPTKEYFETCHFAILED errors. The only recommended course of action is to upgrade to GnuPG 2.2.4 and libgcrypt 1.8.2 which contain the fixes for the defects https://dev.gnupg.org/T3473 and https://dev.gnupg.org/T3530. The GPG fixes that address the CRYPTKEYFETCHFAILED errors require additional gpg-agent configuration options listed below. Please kill and restart any existing GPG agent processes for the agent to pick up the changes. |
![]() | Note |
---|---|
When you set gtm_passwd to "", GT.M obtains the passphrase using the default GTMCRYPT passphrase prompt. When gtm_passwd is set to "", you can neither use a pinentry program (custom or default) to obtain a passphrase nor customize the default GTMCRYPT passphrase prompt. |
To use the custom pinentry program, you need to perform the following setup actions:
GT.M scripts must define GPG_TTY or the (GPG 2.1 and up) pinentry program may not work. e.g.:
export GPG_TTY=$tty
pinentry-program <path to $gtm_dist>/plugin/gtmcrypt/pinetry-gtm.sh
echo "use-standard-socket" >> $GNUPGHOME/gpg-agent.conf
echo "allow-loopback-pinentry" >> $GNUPGHOME/gpg-agent.conf
echo "pinentry-mode=loopback" >> $GNUPGHOME/gpg.conf
echo "auto-expand-secmem" >> $GNUPGHOME/gpg-agent.conf
echo "listen-backlog 128" >> $GNUPGHOME/gpg-agent.conf
![]() | Warning |
---|---|
The GT.M pinentry function should not be used while changing the keyring passphrase, e.g., the passwd subcommand of the gpg --edit-key command. Depending upon the gpg version ("man gpg" to confirm) you can override the agent configuration. Otherwise, you will need to temporarily comment out the pinentry-program line in gpg-agent.conf by placing a "#" in front of the line, e.g.: #pinentry-program <path to $gtm_dist>/plugin/gtmcrypt/pinetry-gtm.sh The encryption plugins included with GT.M releases prior to V5.4-001 are not compatible with GPG agents. |