diff options
| author | Werner Koch <[email protected]> | 2017-08-24 15:17:11 +0000 | 
|---|---|---|
| committer | Werner Koch <[email protected]> | 2017-08-24 15:17:11 +0000 | 
| commit | 47f61df0704485b8165c9cf2a27ad57bcd864239 (patch) | |
| tree | 860f387301408fa7a5e4c3575b7c4b9f0fd941ff /src/engine-gpg.c | |
| parent | Set next version to 1.10.0 (diff) | |
| download | gpgme-47f61df0704485b8165c9cf2a27ad57bcd864239.tar.gz gpgme-47f61df0704485b8165c9cf2a27ad57bcd864239.zip | |
core: New context flag "auto-key-retrieve"
* src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag
"auto-key-retrieve".
* src/context.h (gpgme_context): New field auto_key_retrieve.
* src/engine-backend.h (struct engine_ops): Add arg auto_key_retrieve
to field 'decrypt'.
* src/engine-gpg.c (gpg_decrypt): Add arg auto_key_retrieve and pass
option --auto-key-retrieve to gpg.  Adjust all callers.
(gpg_verify): Ditto.
* src/engine-gpgsm.c (gpgsm_decrypt): Add dummy arg auto_key_retrieve.
* src/engine-uiserver.c (uiserver_decrypt): Ditto.
* tests/run-verify.c (main): Add option --auto-key-retrieve.
--
This makes the --auto-key-retrieve option available in the GPGME API.
Test plan:
Run
  GPGME_DEBUG=9:out tests/run-verify SIGNEDFILE
with and without its new option --auto-key-retrieve and check in the
trace stored in "out" whether --auto-key-retrieve was passed to gpg.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to '')
| -rw-r--r-- | src/engine-gpg.c | 9 | 
1 files changed, 8 insertions, 1 deletions
| diff --git a/src/engine-gpg.c b/src/engine-gpg.c index 9c0d7f7c..5ce04f0a 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -1562,7 +1562,8 @@ static gpgme_error_t  gpg_decrypt (void *engine,               gpgme_decrypt_flags_t flags,               gpgme_data_t ciph, gpgme_data_t plain, -             int export_session_key, const char *override_session_key) +             int export_session_key, const char *override_session_key, +             int auto_key_retrieve)  {    engine_gpg_t gpg = engine;    gpgme_error_t err; @@ -1580,6 +1581,9 @@ gpg_decrypt (void *engine,    if (!err && export_session_key)      err = add_arg (gpg, "--show-session-key"); +  if (!err && auto_key_retrieve) +    err = add_arg (gpg, "--auto-key-retrieve"); +    if (!err && override_session_key && *override_session_key)      {        if (have_gpg_version (gpg, "2.1.16")) @@ -2997,6 +3001,9 @@ gpg_verify (void *engine, gpgme_data_t sig, gpgme_data_t signed_text,    gpgme_error_t err;    err = append_args_from_sender (gpg, ctx); +  if (!err && ctx->auto_key_retrieve) +    err = add_arg (gpg, "--auto-key-retrieve"); +    if (err)      ;    else if (plaintext) | 
