aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am3
-rw-r--r--tests/gpg/Makefile.am3
-rw-r--r--tests/gpgsm/Makefile.am3
-rw-r--r--tests/opassuan/Makefile.am3
-rw-r--r--tests/run-decrypt.c52
-rw-r--r--tests/run-keylist.c21
6 files changed, 80 insertions, 5 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 30c35f09..b5825d20 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -19,7 +19,8 @@
## Process this file with automake to produce Makefile.in
-TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir)
+GNUPGHOME=$(abs_builddir)
+TESTS_ENVIRONMENT = GNUPGHOME=$(GNUPGHOME)
TESTS = t-version t-data t-engine-info
diff --git a/tests/gpg/Makefile.am b/tests/gpg/Makefile.am
index b50f4b07..392fc898 100644
--- a/tests/gpg/Makefile.am
+++ b/tests/gpg/Makefile.am
@@ -22,7 +22,8 @@
GPG = gpg
GPG_AGENT = gpg-agent
-TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) LC_ALL=C GPG_AGENT_INFO= \
+GNUPGHOME=$(abs_builddir)
+TESTS_ENVIRONMENT = GNUPGHOME=$(GNUPGHOME) LC_ALL=C GPG_AGENT_INFO= \
top_srcdir=$(top_srcdir)
# The keylist tests must come after the import and the edit test.
diff --git a/tests/gpgsm/Makefile.am b/tests/gpgsm/Makefile.am
index d2acd05b..c2599204 100644
--- a/tests/gpgsm/Makefile.am
+++ b/tests/gpgsm/Makefile.am
@@ -22,7 +22,8 @@
GPGSM = gpgsm
GPG_AGENT = gpg-agent
-TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) LC_ALL=C GPG_AGENT_INFO= \
+GNUPGHOME=$(abs_builddir)
+TESTS_ENVIRONMENT = GNUPGHOME=$(GNUPGHOME) LC_ALL=C GPG_AGENT_INFO= \
top_srcdir=$(top_srcdir)
noinst_HEADERS = t-support.h
diff --git a/tests/opassuan/Makefile.am b/tests/opassuan/Makefile.am
index 31d26edd..1dba3e8f 100644
--- a/tests/opassuan/Makefile.am
+++ b/tests/opassuan/Makefile.am
@@ -17,7 +17,8 @@
## Process this file with automake to produce Makefile.in
-TESTS_ENVIRONMENT = GNUPGHOME=$(abs_builddir) GPG_AGENT_INFO=
+GNUPGHOME=$(abs_builddir)
+TESTS_ENVIRONMENT = GNUPGHOME=$(GNUPGHOME) GPG_AGENT_INFO=
noinst_HEADERS =
TESTS =
diff --git a/tests/run-decrypt.c b/tests/run-decrypt.c
index 69de139c..c9d9e72d 100644
--- a/tests/run-decrypt.c
+++ b/tests/run-decrypt.c
@@ -55,6 +55,7 @@ print_result (gpgme_decrypt_result_t result)
printf ("Original file name .: %s\n", nonnull(result->file_name));
printf ("Wrong key usage ....: %s\n", result->wrong_key_usage? "yes":"no");
+ printf ("Legacy w/o MDC ... .: %s\n", result->legacy_cipher_nomdc?"yes":"no");
printf ("Compliance de-vs ...: %s\n", result->is_de_vs? "yes":"no");
printf ("MIME flag ..........: %s\n", result->is_mime? "yes":"no");
printf ("Unsupported algo ...: %s\n", nonnull(result->unsupported_algorithm));
@@ -85,7 +86,9 @@ show_usage (int ex)
" --override-session-key STRING use STRING as session key\n"
" --request-origin STRING use STRING as request origin\n"
" --no-symkey-cache disable the use of that cache\n"
+ " --ignore-mdc-error allow decryption of legacy data\n"
" --unwrap remove only the encryption layer\n"
+ " --diagnostics print diagnostics\n"
, stderr);
exit (ex);
}
@@ -108,7 +111,9 @@ main (int argc, char **argv)
const char *override_session_key = NULL;
const char *request_origin = NULL;
int no_symkey_cache = 0;
+ int ignore_mdc_error = 0;
int raw_output = 0;
+ int diagnostics = 0;
if (argc)
{ argc--; argv++; }
@@ -169,6 +174,16 @@ main (int argc, char **argv)
no_symkey_cache = 1;
argc--; argv++;
}
+ else if (!strcmp (*argv, "--ignore-mdc-error"))
+ {
+ ignore_mdc_error = 1;
+ argc--; argv++;
+ }
+ else if (!strcmp (*argv, "--diagnostics"))
+ {
+ diagnostics = 1;
+ argc--; argv++;
+ }
else if (!strcmp (*argv, "--unwrap"))
{
flags |= GPGME_DECRYPT_UNWRAP;
@@ -240,7 +255,18 @@ main (int argc, char **argv)
err = gpgme_set_ctx_flag (ctx, "no-symkey-cache", "1");
if (err)
{
- fprintf (stderr, PGM ": error setting no-symkey-cache: %s\n",
+ fprintf (stderr, PGM ": error setting no-symkey-cache: %s\n",
+ gpgme_strerror (err));
+ exit (1);
+ }
+ }
+
+ if (ignore_mdc_error)
+ {
+ err = gpgme_set_ctx_flag (ctx, "ignore-mdc-error", "1");
+ if (err)
+ {
+ fprintf (stderr, PGM ": error setting ignore-mdc-error: %s\n",
gpgme_strerror (err));
exit (1);
}
@@ -264,9 +290,33 @@ main (int argc, char **argv)
err = gpgme_op_decrypt_ext (ctx, flags, in, out);
result = gpgme_op_decrypt_result (ctx);
+
+ if (diagnostics)
+ {
+ gpgme_data_t diag;
+ gpgme_error_t diag_err;
+
+ gpgme_data_new (&diag);
+ diag_err = gpgme_op_getauditlog (ctx, diag, GPGME_AUDITLOG_DIAG);
+ if (diag_err)
+ {
+ fprintf (stderr, PGM ": getting diagnostics failed: %s\n",
+ gpgme_strerror (diag_err));
+ }
+ else
+ {
+ fputs ("Begin Diagnostics:\n", stdout);
+ print_data (diag);
+ fputs ("End Diagnostics.\n", stdout);
+ }
+ gpgme_data_release (diag);
+ }
+
if (err)
{
fprintf (stderr, PGM ": decrypt failed: %s\n", gpgme_strerror (err));
+ if (result)
+ print_result (result);
exit (1);
}
if (result)
diff --git a/tests/run-keylist.c b/tests/run-keylist.c
index 295251ae..9206b50a 100644
--- a/tests/run-keylist.c
+++ b/tests/run-keylist.c
@@ -47,6 +47,7 @@ show_usage (int ex)
" --openpgp use the OpenPGP protocol (default)\n"
" --cms use the CMS protocol\n"
" --secret list only secret keys\n"
+ " --with-secret list pubkeys with secret info filled\n"
" --local use GPGME_KEYLIST_MODE_LOCAL\n"
" --extern use GPGME_KEYLIST_MODE_EXTERN\n"
" --sigs use GPGME_KEYLIST_MODE_SIGS\n"
@@ -57,6 +58,7 @@ show_usage (int ex)
" --import import all keys\n"
" --offline use offline mode\n"
" --from-file list all keys in the given file\n"
+ " --from-wkd list key from a web key directory\n"
" --require-gnupg required at least the given GnuPG version\n"
, stderr);
exit (ex);
@@ -100,6 +102,7 @@ main (int argc, char **argv)
int only_secret = 0;
int offline = 0;
int from_file = 0;
+ int from_wkd = 0;
gpgme_data_t data = NULL;
@@ -171,6 +174,11 @@ main (int argc, char **argv)
mode |= GPGME_KEYLIST_MODE_VALIDATE;
argc--; argv++;
}
+ else if (!strcmp (*argv, "--with-secret"))
+ {
+ mode |= GPGME_KEYLIST_MODE_WITH_SECRET;
+ argc--; argv++;
+ }
else if (!strcmp (*argv, "--import"))
{
import = 1;
@@ -194,6 +202,12 @@ main (int argc, char **argv)
gpgme_set_global_flag ("require-gnupg", *argv);
argc--; argv++;
}
+ else if (!strcmp (*argv, "--from-wkd"))
+ {
+ argc--; argv++;
+ mode |= GPGME_KEYLIST_MODE_LOCATE;
+ from_wkd = 1;
+ }
else if (!strncmp (*argv, "--", 2))
show_usage (1);
}
@@ -213,6 +227,13 @@ main (int argc, char **argv)
gpgme_set_offline (ctx, offline);
+ if (from_wkd)
+ {
+ err = gpgme_set_ctx_flag (ctx, "auto-key-locate",
+ "clear,nodefault,wkd");
+ fail_if_err (err);
+ }
+
if (from_file)
{
err = gpgme_data_new_from_file (&data, *argv, 1);