diff options
author | Werner Koch <[email protected]> | 2016-10-25 15:27:49 +0000 |
---|---|---|
committer | Werner Koch <[email protected]> | 2016-10-25 15:28:01 +0000 |
commit | b8159eadb5636cd9d93ee60c41e75d5978927870 (patch) | |
tree | 5b9c857eba89d45fca40f136abb85d95d15f70ee /src/engine-gpg.c | |
parent | qt: Improve WKSPublishJob apidoc (diff) | |
download | gpgme-b8159eadb5636cd9d93ee60c41e75d5978927870.tar.gz gpgme-b8159eadb5636cd9d93ee60c41e75d5978927870.zip |
core: New API functions gpgme_set_sender, gpgme_get_sender.
* src/context.h (struct gpgme_context): Add field 'sender'.
* src/gpgme.c: Include mbox-util.h.
(gpgme_release): Free SENDER.
(gpgme_set_sender): New.
(gpgme_get_sender): New.
* src/gpgme.def, src/libgpgme.vers: Add new functions.
* src/engine-gpg.c (append_args_from_sender): New.
(gpg_encrypt_sign, gpg_sign): Call append_args_from_sender.
(gpg_verify): Add arg CTX. Call append_args_from_sender/
* src/engine-gpgsm.c (gpgsm_verify): Add dummy arg CTX.
* src/engine-uiserver.c (uiserver_verify): Ditto.
* src/engine.c (_gpgme_engine_op_verify): Add arg CTX.
* src/verify.c (verify_start): Pass CTX to engine function.
* tests/gpg/t-verify.c (main): Add some checks for new functions.
* tests/run-sign.c (main): Add option --sender.
* tests/run-verify.c (main): Ditto.
Signed-off-by: Werner Koch <[email protected]>
Diffstat (limited to 'src/engine-gpg.c')
-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"); |