aboutsummaryrefslogtreecommitdiffstats
path: root/tests/run-encrypt.c
diff options
context:
space:
mode:
authorAndre Heinecke <[email protected]>2016-08-09 09:40:29 +0000
committerAndre Heinecke <[email protected]>2016-08-09 12:23:51 +0000
commit3d2f027d0f40e7ec4ab48cee89ff0ee10b423566 (patch)
tree2ce3f95c548e471777506e85618e203c3ee73a16 /tests/run-encrypt.c
parentcore: Let GPGME_PROTOCOL_ASSUAN pass Assuan comments through. (diff)
downloadgpgme-3d2f027d0f40e7ec4ab48cee89ff0ee10b423566.tar.gz
gpgme-3d2f027d0f40e7ec4ab48cee89ff0ee10b423566.zip
core: Add support for mixed symmetric and asym enc
* src/gpgme.h.in (gpgme_encrypt_flags_t): New flag GPGME_ENCRYPT_SYMMETRIC. * src/engine-gpg.c (gpg_encrypt): Also add --symmetric if the flag is given. * NEWS: Mention new flag. * tests/run-encrypt.c (show_usage): Extend for --symmetric. (main): Handle --symmetric. (main): Set passphrase_cb in loopback mode. (main): Fix encrypt call if no recipients are given. * tests/gpg/t-encrypt-mixed.c: New. * tests/gpg/Makefile.am (c_tests): Add new test. * doc/gpgme.texi: Document new flag.
Diffstat (limited to 'tests/run-encrypt.c')
-rw-r--r--tests/run-encrypt.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/tests/run-encrypt.c b/tests/run-encrypt.c
index a00f0282..210f88ab 100644
--- a/tests/run-encrypt.c
+++ b/tests/run-encrypt.c
@@ -70,6 +70,7 @@ show_usage (int ex)
" --uiserver use the UI server\n"
" --loopback use a loopback pinentry\n"
" --key NAME encrypt to key NAME\n"
+ " --symmetric encrypt symmetric (OpenPGP only)\n"
, stderr);
exit (ex);
}
@@ -91,6 +92,7 @@ main (int argc, char **argv)
gpgme_key_t keys[10+1];
int keycount = 0;
int i;
+ gpgme_encrypt_flags_t flags = GPGME_ENCRYPT_ALWAYS_TRUST;
if (argc)
{ argc--; argv++; }
@@ -148,6 +150,11 @@ main (int argc, char **argv)
use_loopback = 1;
argc--; argv++;
}
+ else if (!strcmp (*argv, "--symmetric"))
+ {
+ flags |= GPGME_ENCRYPT_SYMMETRIC;
+ argc--; argv++;
+ }
else if (!strncmp (*argv, "--", 2))
show_usage (1);
@@ -174,7 +181,10 @@ main (int argc, char **argv)
if (print_status)
gpgme_set_status_cb (ctx, status_cb, NULL);
if (use_loopback)
- gpgme_set_pinentry_mode (ctx, GPGME_PINENTRY_MODE_LOOPBACK);
+ {
+ gpgme_set_pinentry_mode (ctx, GPGME_PINENTRY_MODE_LOOPBACK);
+ gpgme_set_passphrase_cb (ctx, passphrase_cb, NULL);
+ }
for (i=0; i < keycount; i++)
{
@@ -194,7 +204,7 @@ main (int argc, char **argv)
err = gpgme_data_new (&out);
fail_if_err (err);
- err = gpgme_op_encrypt (ctx, keys, GPGME_ENCRYPT_ALWAYS_TRUST, in, out);
+ err = gpgme_op_encrypt (ctx, keycount ? keys : NULL, flags, in, out);
result = gpgme_op_encrypt_result (ctx);
if (result)
print_result (result);