aboutsummaryrefslogtreecommitdiffstats
path: root/tests/run-sign.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/run-sign.c')
-rw-r--r--tests/run-sign.c23
1 files changed, 22 insertions, 1 deletions
diff --git a/tests/run-sign.c b/tests/run-sign.c
index 07482dd5..c04fa819 100644
--- a/tests/run-sign.c
+++ b/tests/run-sign.c
@@ -87,6 +87,8 @@ show_usage (int ex)
" --sender MBOX use MBOX as sender address\n"
" --include-key-block use this option with gpg\n"
" --clear create a clear text signature\n"
+ " --detach create a detached signature\n"
+ " --direct-file-io pass FILE instead of stream with content of FILE to backend\n"
" --archive create a signed archive with the given file or directory\n"
" --directory DIR switch to directory DIR before creating the archive\n"
" --output FILE write output to FILE instead of stdout\n"
@@ -113,6 +115,7 @@ main (int argc, char **argv)
int use_loopback = 0;
int include_key_block = 0;
int diagnostics = 0;
+ int direct_file_io = 0;
const char *sender = NULL;
const char *s;
@@ -185,6 +188,16 @@ main (int argc, char **argv)
sigmode = GPGME_SIG_MODE_CLEAR;
argc--; argv++;
}
+ else if (!strcmp (*argv, "--detach"))
+ {
+ sigmode = GPGME_SIG_MODE_DETACH;
+ argc--; argv++;
+ }
+ else if (!strcmp (*argv, "--direct-file-io"))
+ {
+ direct_file_io = 1;
+ argc--; argv++;
+ }
else if (!strcmp (*argv, "--archive"))
{
sigmode = GPGME_SIG_MODE_ARCHIVE;
@@ -269,7 +282,15 @@ main (int argc, char **argv)
}
}
- if (sigmode == GPGME_SIG_MODE_ARCHIVE)
+ if (direct_file_io)
+ {
+ sigmode |= GPGME_SIG_MODE_FILE;
+ err = gpgme_data_new (&in);
+ fail_if_err (err);
+ err = gpgme_data_set_file_name (in, *argv);
+ fail_if_err (err);
+ }
+ else if (sigmode == GPGME_SIG_MODE_ARCHIVE)
{
const char *path = *argv;
err = gpgme_data_new_from_mem (&in, path, strlen (path), 0);