core: Support keylist mode for op_keylist_from_data.
* src/engine-backend.h (keylist_data): Add MODE argument. * src/engine-gpg.c (gpg_keylist_data): Add MODE argument. * src/engine.c (_gpgme_engine_op_keylist_data): Likewise. * src/engine.h (_gpgme_engine_op_keylist_data): Declaration. * src/keylist.c (gpgme_op_keylist_from_data_start): Call _gpgme_engine_op_keylist_data with ctx->keylist_mode. -- GnuPG-bug-id: 5438 Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
This commit is contained in:
parent
55861ba9cc
commit
b2a2158384
@ -106,7 +106,8 @@ struct engine_ops
|
|||||||
int secret_only, int reserved,
|
int secret_only, int reserved,
|
||||||
gpgme_keylist_mode_t mode,
|
gpgme_keylist_mode_t mode,
|
||||||
int engine_flags);
|
int engine_flags);
|
||||||
gpgme_error_t (*keylist_data) (void *engine, gpgme_data_t data);
|
gpgme_error_t (*keylist_data) (void *engine, gpgme_keylist_mode_t mode,
|
||||||
|
gpgme_data_t data);
|
||||||
gpgme_error_t (*keysign) (void *engine,
|
gpgme_error_t (*keysign) (void *engine,
|
||||||
gpgme_key_t key, const char *userid,
|
gpgme_key_t key, const char *userid,
|
||||||
unsigned long expires, unsigned int flags,
|
unsigned long expires, unsigned int flags,
|
||||||
|
@ -3179,7 +3179,7 @@ gpg_keylist_ext (void *engine, const char *pattern[], int secret_only,
|
|||||||
|
|
||||||
|
|
||||||
static gpgme_error_t
|
static gpgme_error_t
|
||||||
gpg_keylist_data (void *engine, gpgme_data_t data)
|
gpg_keylist_data (void *engine, gpgme_keylist_mode_t mode, gpgme_data_t data)
|
||||||
{
|
{
|
||||||
engine_gpg_t gpg = engine;
|
engine_gpg_t gpg = engine;
|
||||||
gpgme_error_t err;
|
gpgme_error_t err;
|
||||||
@ -3198,6 +3198,9 @@ gpg_keylist_data (void *engine, gpgme_data_t data)
|
|||||||
err = add_arg (gpg, "--dry-run");
|
err = add_arg (gpg, "--dry-run");
|
||||||
if (!err)
|
if (!err)
|
||||||
err = add_arg (gpg, "--import");
|
err = add_arg (gpg, "--import");
|
||||||
|
if (!err && (mode & GPGME_KEYLIST_MODE_SIGS)
|
||||||
|
&& have_gpg_version (gpg, "2.0.10"))
|
||||||
|
err = add_arg (gpg, "--with-sig-check");
|
||||||
if (!err)
|
if (!err)
|
||||||
err = add_arg (gpg, "--");
|
err = add_arg (gpg, "--");
|
||||||
if (!err)
|
if (!err)
|
||||||
|
@ -897,7 +897,8 @@ _gpgme_engine_op_keylist_ext (engine_t engine, const char *pattern[],
|
|||||||
|
|
||||||
|
|
||||||
gpgme_error_t
|
gpgme_error_t
|
||||||
_gpgme_engine_op_keylist_data (engine_t engine, gpgme_data_t data)
|
_gpgme_engine_op_keylist_data (engine_t engine, gpgme_keylist_mode_t mode,
|
||||||
|
gpgme_data_t data)
|
||||||
{
|
{
|
||||||
if (!engine)
|
if (!engine)
|
||||||
return gpg_error (GPG_ERR_INV_VALUE);
|
return gpg_error (GPG_ERR_INV_VALUE);
|
||||||
@ -905,7 +906,7 @@ _gpgme_engine_op_keylist_data (engine_t engine, gpgme_data_t data)
|
|||||||
if (!engine->ops->keylist_data)
|
if (!engine->ops->keylist_data)
|
||||||
return gpg_error (GPG_ERR_NOT_IMPLEMENTED);
|
return gpg_error (GPG_ERR_NOT_IMPLEMENTED);
|
||||||
|
|
||||||
return (*engine->ops->keylist_data) (engine->engine, data);
|
return (*engine->ops->keylist_data) (engine->engine, mode, data);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -157,6 +157,7 @@ gpgme_error_t _gpgme_engine_op_keylist_ext (engine_t engine,
|
|||||||
gpgme_keylist_mode_t mode,
|
gpgme_keylist_mode_t mode,
|
||||||
int engine_flags);
|
int engine_flags);
|
||||||
gpgme_error_t _gpgme_engine_op_keylist_data (engine_t engine,
|
gpgme_error_t _gpgme_engine_op_keylist_data (engine_t engine,
|
||||||
|
gpgme_keylist_mode_t mode,
|
||||||
gpgme_data_t data);
|
gpgme_data_t data);
|
||||||
gpgme_error_t _gpgme_engine_op_sign (engine_t engine, gpgme_data_t in,
|
gpgme_error_t _gpgme_engine_op_sign (engine_t engine, gpgme_data_t in,
|
||||||
gpgme_data_t out, gpgme_sig_mode_t mode,
|
gpgme_data_t out, gpgme_sig_mode_t mode,
|
||||||
|
@ -1216,7 +1216,7 @@ gpgme_op_keylist_from_data_start (gpgme_ctx_t ctx, gpgme_data_t data,
|
|||||||
if (err)
|
if (err)
|
||||||
return TRACE_ERR (err);
|
return TRACE_ERR (err);
|
||||||
|
|
||||||
err = _gpgme_engine_op_keylist_data (ctx->engine, data);
|
err = _gpgme_engine_op_keylist_data (ctx->engine, ctx->keylist_mode, data);
|
||||||
return TRACE_ERR (err);
|
return TRACE_ERR (err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user