summaryrefslogtreecommitdiffstats
path: root/debian/systemd-environment-generator/90gpg-agent
diff options
context:
space:
mode:
Diffstat (limited to 'debian/systemd-environment-generator/90gpg-agent')
-rwxr-xr-xdebian/systemd-environment-generator/90gpg-agent21
1 files changed, 21 insertions, 0 deletions
diff --git a/debian/systemd-environment-generator/90gpg-agent b/debian/systemd-environment-generator/90gpg-agent
new file mode 100755
index 0000000..7ece62b
--- /dev/null
+++ b/debian/systemd-environment-generator/90gpg-agent
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+# If enable-ssh-support is present in gpg-agent.conf, export SSH_AUTH_SOCK
+# pointing at the gpg-agent's ssh-agent compatibility layer.
+
+# Authors:
+# rufo <rufo@rufoa.com>
+# Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+
+# See https://bugs.debian.org/855868
+
+# see gpgconf(1): $5 is the "okay" field.
+# see also https://dev.gnupg.org/T4866 and https://dev.gnupg.org/T4867
+get_okay='BEGIN{ret=1} /^gpg-agent:/{if ($5 == "1") { ret=0; exit 0 } } END {exit ret}'
+
+if gpgconf --check-options gpg-agent | awk -F: "$get_okay" && \
+ [ -n "$(gpgconf --list-options gpg-agent | \
+ awk -F: '/^enable-ssh-support:/{ print $10 }')" ]; then
+ echo SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
+ echo GSM_SKIP_SSH_AGENT_WORKAROUND=true
+fi