tests: Add test for the ssh key export.
[gnupg.git] / common / get-passphrase.c
index 53ce7d1..c24b40e 100644 (file)
@@ -24,7 +24,7 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, see <http://www.gnu.org/licenses/>.
+ * along with this program; if not, see <https://www.gnu.org/licenses/>.
  */
 
 #include <config.h>
@@ -47,7 +47,6 @@ static struct
 {
   gpg_err_source_t errsource;
   int verbosity;
-  const char *homedir;
   const char *agent_program;
   const char *lc_ctype;
   const char *lc_messages;
@@ -62,7 +61,6 @@ static struct
 void
 gnupg_prepare_get_passphrase (gpg_err_source_t errsource,
                               int verbosity,
-                              const char *homedir,
                               const char *agent_program,
                               const char *opt_lc_ctype,
                               const char *opt_lc_messages,
@@ -70,7 +68,6 @@ gnupg_prepare_get_passphrase (gpg_err_source_t errsource,
 {
   agentargs.errsource          = errsource;
   agentargs.verbosity          = verbosity;
-  agentargs.homedir            = homedir;
   agentargs.agent_program      = agent_program;
   agentargs.lc_ctype           = opt_lc_ctype;
   agentargs.lc_messages        = opt_lc_messages;
@@ -93,7 +90,6 @@ start_agent (void)
 
   err = start_new_gpg_agent (&agent_ctx,
                              agentargs.errsource,
-                             agentargs.homedir,
                              agentargs.agent_program,
                              agentargs.lc_ctype,
                              agentargs.lc_messages,
@@ -130,17 +126,6 @@ default_inq_cb (void *opaque, const char *line)
 }
 
 
-static gpg_error_t
-membuf_data_cb (void *opaque, const void *buffer, size_t length)
-{
-  membuf_t *data = opaque;
-
-  if (buffer)
-    put_membuf (data, buffer, length);
-  return 0;
-}
-
-
 /* Ask for a passphrase via gpg-agent.  On success the caller needs to
    free the string stored at R_PASSPHRASE.  On error NULL will be
    stored at R_PASSPHRASE and an appropriate gpg error code is
@@ -151,7 +136,7 @@ membuf_data_cb (void *opaque, const void *buffer, size_t length)
    PROMPT is the prompt string to label the entry box, it may be NULL
    for a default one.  DESC_MSG is a longer description to be
    displayed above the entry box, if may be NULL for a default one.
-   If USE_SECMEM is true, the returned passphrase is retruned in
+   If USE_SECMEM is true, the returned passphrase is returned in
    secure memory.  The length of all these strings is limited; they
    need to fit in their encoded form into a standard Assuan line (i.e
    less then about 950 characters).  All strings shall be UTF-8.  */
@@ -196,7 +181,7 @@ gnupg_get_passphrase (const char *cache_id,
     if (!(arg4 = percent_plus_escape (desc_msg)))
       goto no_mem;
 
-  snprintf (line, DIM(line)-1,
+  snprintf (line, DIM(line),
             "GET_PASSPHRASE --data %s--repeat=%d -- %s %s %s %s",
             check_quality? "--check ":"",
             repeat,
@@ -204,7 +189,6 @@ gnupg_get_passphrase (const char *cache_id,
             arg2? arg2:"X",
             arg3? arg3:"X",
             arg4? arg4:"X");
-  line[DIM(line)-1] = 0;
   xfree (arg2);
   xfree (arg3);
   xfree (arg4);
@@ -214,11 +198,11 @@ gnupg_get_passphrase (const char *cache_id,
   else
     init_membuf (&data, 64);
   err = assuan_transact (agent_ctx, line,
-                         membuf_data_cb, &data,
+                         put_membuf_cb, &data,
                          default_inq_cb, NULL, NULL, NULL);
 
   /* Older Pinentries return the old assuan error code for canceled
-     which gets translated bt libassuan to GPG_ERR_ASS_CANCELED and
+     which gets translated by libassuan to GPG_ERR_ASS_CANCELED and
      not to the code for a user cancel.  Fix this here. */
   if (err && gpg_err_source (err)
       && gpg_err_code (err) == GPG_ERR_ASS_CANCELED)
@@ -265,8 +249,7 @@ gnupg_clear_passphrase (const char *cache_id)
   if (err)
     return err;
 
-  snprintf (line, DIM(line)-1, "CLEAR_PASSPHRASE %s", cache_id);
-  line[DIM(line)-1] = 0;
+  snprintf (line, DIM(line), "CLEAR_PASSPHRASE %s", cache_id);
   return assuan_transact (agent_ctx, line, NULL, NULL,
                           default_inq_cb, NULL, NULL, NULL);
 }