You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@subversion.apache.org by Chih-Hsuan Yen <ya...@archlinux.org> on 2022/02/21 16:41:59 UTC

[PATCH] Pass remote to pinentry used in gpg-agent password store

This change helps complex scenarios where different pinentry programs
are needed under different environments.

P.S. I'm not subscribed to this mailing list. Please CC me for replies,
thanks!

[[[
Pass $PINENTRY_USER_DATA to pinentry used in gpg-agent password store.

* subversion/libsvn_subr/gpg_agent.c
  (send_options) pass $PINENTRY_USER_DATA via an gpg-agent option
]]]

Index: subversion/libsvn_subr/gpg_agent.c
===================================================================
*** subversion/libsvn_subr/gpg_agent.c	(revision 1898278)
--- subversion/libsvn_subr/gpg_agent.c	(working copy)
*************** send_options(int sd, char *buf, size_t n
*** 419,424 ****
--- 419,425 ----
    const char *tty_type;
    const char *lc_ctype;
    const char *display;
+   const char *pinentry_user_data;
  
    /* Send TTY_NAME to the gpg-agent daemon. */
    tty_name = getenv("GPG_TTY");
*************** send_options(int sd, char *buf, size_t n
*** 458,463 ****
--- 459,471 ----
          return FALSE;
      }
  
+   pinentry_user_data = getenv("PINENTRY_USER_DATA");
+   if (pinentry_user_data != NULL)
+     {
+       if (!send_option(sd, buf, n, "pinentry-user-data", pinentry_user_data, scratch_pool))
+         return FALSE;
+     }
+ 
    return TRUE;
  }