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 /tests | |
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 '')
-rw-r--r-- | tests/gpg/t-verify.c | 49 | ||||
-rw-r--r-- | tests/run-sign.c | 16 | ||||
-rw-r--r-- | tests/run-verify.c | 16 |
3 files changed, 81 insertions, 0 deletions
diff --git a/tests/gpg/t-verify.c b/tests/gpg/t-verify.c index 9842d3af..f955cc9d 100644 --- a/tests/gpg/t-verify.c +++ b/tests/gpg/t-verify.c @@ -209,6 +209,7 @@ main (int argc, char *argv[]) gpgme_error_t err; gpgme_data_t sig, text; gpgme_verify_result_t result; + const char *s; (void)argc; (void)argv; @@ -270,6 +271,54 @@ main (int argc, char *argv[]) exit (1); } + /* Checking that set/get_sernder works. */ + err = gpgme_set_sender (ctx, "[email protected]"); + fail_if_err (err); + s = gpgme_get_sender (ctx); + if (!s || strcmp (s, "[email protected]")) + { + fprintf (stderr, "%s:%i: gpgme_{set,get}_sender mismatch\n", + __FILE__, __LINE__); + exit (1); + } + + err = gpgme_set_sender (ctx, "<[email protected]>"); + fail_if_err (err); + s = gpgme_get_sender (ctx); + if (!s || strcmp (s, "[email protected]")) + { + fprintf (stderr, "%s:%i: gpgme_{set,get}_sender mismatch\n", + __FILE__, __LINE__); + exit (1); + } + + err = gpgme_set_sender (ctx, "Foo bar (comment) <[email protected]>"); + fail_if_err (err); + s = gpgme_get_sender (ctx); + if (!s || strcmp (s, "[email protected]")) + { + fprintf (stderr, "%s:%i: gpgme_{set,get}_sender mismatch\n", + __FILE__, __LINE__); + exit (1); + } + + err = gpgme_set_sender (ctx, "foo"); + if (gpgme_err_code (err) != GPG_ERR_INV_VALUE) + { + fprintf (stderr, "%s:%i: gpgme_set_sender didn't detect bogus address\n", + __FILE__, __LINE__); + exit (1); + } + /* (the former address should still be there.) */ + s = gpgme_get_sender (ctx); + if (!s || strcmp (s, "[email protected]")) + { + fprintf (stderr, "%s:%i: gpgme_{set,get}_sender mismatch\n", + __FILE__, __LINE__); + exit (1); + } + + gpgme_data_release (sig); gpgme_data_release (text); gpgme_release (ctx); diff --git a/tests/run-sign.c b/tests/run-sign.c index 70853ed6..f790cb64 100644 --- a/tests/run-sign.c +++ b/tests/run-sign.c @@ -83,6 +83,7 @@ show_usage (int ex) " --uiserver use the UI server\n" " --loopback use a loopback pinentry\n" " --key NAME use key NAME for signing\n" + " --sender MBOX use MBOX as sender address\n" , stderr); exit (ex); } @@ -101,6 +102,7 @@ main (int argc, char **argv) gpgme_sign_result_t result; int print_status = 0; int use_loopback = 0; + const char *sender = NULL; if (argc) { argc--; argv++; } @@ -148,6 +150,14 @@ main (int argc, char **argv) key_string = *argv; argc--; argv++; } + else if (!strcmp (*argv, "--sender")) + { + argc--; argv++; + if (!argc) + show_usage (1); + sender = *argv; + argc--; argv++; + } else if (!strcmp (*argv, "--loopback")) { use_loopback = 1; @@ -192,6 +202,12 @@ main (int argc, char **argv) gpgme_key_unref (akey); } + if (sender) + { + err = gpgme_set_sender (ctx, sender); + fail_if_err (err); + } + err = gpgme_data_new_from_file (&in, *argv, 1); if (err) { diff --git a/tests/run-verify.c b/tests/run-verify.c index ebc20d97..22242c00 100644 --- a/tests/run-verify.c +++ b/tests/run-verify.c @@ -221,6 +221,7 @@ show_usage (int ex) " --status print status lines from the backend\n" " --openpgp use the OpenPGP protocol (default)\n" " --cms use the CMS protocol\n" + " --sender MBOX use MBOX as sender address\n" , stderr); exit (ex); } @@ -239,6 +240,7 @@ main (int argc, char **argv) gpgme_data_t msg = NULL; gpgme_verify_result_t result; int print_status = 0; + const char *sender = NULL; if (argc) { argc--; argv++; } @@ -273,6 +275,14 @@ main (int argc, char **argv) protocol = GPGME_PROTOCOL_CMS; argc--; argv++; } + else if (!strcmp (*argv, "--sender")) + { + argc--; argv++; + if (!argc) + show_usage (1); + sender = *argv; + argc--; argv++; + } else if (!strncmp (*argv, "--", 2)) show_usage (1); @@ -313,6 +323,12 @@ main (int argc, char **argv) } /* gpgme_set_ctx_flag (ctx, "raw-description", "1"); */ + if (sender) + { + err = gpgme_set_sender (ctx, sender); + fail_if_err (err); + } + err = gpgme_data_new_from_stream (&sig, fp_sig); if (err) { |