diff options
Diffstat (limited to '')
| -rw-r--r-- | src/engine-gpg.c | 31 | 
1 files changed, 28 insertions, 3 deletions
| diff --git a/src/engine-gpg.c b/src/engine-gpg.c index 4415c946..cb52dea7 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -1646,6 +1646,23 @@ append_args_from_signers (engine_gpg_t gpg, gpgme_ctx_t ctx /* FIXME */)  static gpgme_error_t +append_args_from_sender (engine_gpg_t gpg, gpgme_ctx_t ctx) +{ +  gpgme_error_t err; + +  if (ctx->sender && have_gpg_version (gpg, "2.1.15")) +    { +      err = add_arg (gpg, "--sender"); +      if (!err) +        err = add_arg (gpg, ctx->sender); +    } +  else +    err = 0; +  return err; +} + + +static gpgme_error_t  append_args_from_sig_notations (engine_gpg_t gpg, gpgme_ctx_t ctx /* FIXME */)  {    gpgme_error_t err = 0; @@ -1893,6 +1910,9 @@ gpg_encrypt_sign (void *engine, gpgme_key_t recp[],      err = append_args_from_signers (gpg, ctx);    if (!err) +    err = append_args_from_sender (gpg, ctx); + +  if (!err)      err = append_args_from_sig_notations (gpg, ctx);    /* Tell the gpg object about the data.  */ @@ -2794,6 +2814,8 @@ gpg_sign (void *engine, gpgme_data_t in, gpgme_data_t out,    if (!err)      err = append_args_from_signers (gpg, ctx);    if (!err) +    err = append_args_from_sender (gpg, ctx); +  if (!err)      err = append_args_from_sig_notations (gpg, ctx);    if (gpgme_data_get_file_name (in)) @@ -2845,12 +2867,15 @@ gpg_trustlist (void *engine, const char *pattern)  static gpgme_error_t  gpg_verify (void *engine, gpgme_data_t sig, gpgme_data_t signed_text, -	    gpgme_data_t plaintext) +	    gpgme_data_t plaintext, gpgme_ctx_t ctx)  {    engine_gpg_t gpg = engine; -  gpgme_error_t err = 0; +  gpgme_error_t err; -  if (plaintext) +  err = append_args_from_sender (gpg, ctx); +  if (err) +    ; +  else if (plaintext)      {        /* Normal or cleartext signature.  */        err = add_arg (gpg, "--output"); | 
