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/gpg/t-verify.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 'tests/gpg/t-verify.c')
| -rw-r--r-- | tests/gpg/t-verify.c | 49 | 
1 files changed, 49 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); | 
