aboutsummaryrefslogtreecommitdiffstats
path: root/tests/gpg/t-support.h
diff options
context:
space:
mode:
authorIngo Klöcker <[email protected]>2024-08-05 15:14:01 +0000
committerIngo Klöcker <[email protected]>2024-08-06 10:43:28 +0000
commitd804a7a4bc871f38f6cdc2cd63af3ef004580437 (patch)
tree0d2343771232ee2f761b19471837b1726bf4f341 /tests/gpg/t-support.h
parentw32: Use UTF-8 for localized error descriptions for all threads (diff)
downloadgpgme-d804a7a4bc871f38f6cdc2cd63af3ef004580437.tar.gz
gpgme-d804a7a4bc871f38f6cdc2cd63af3ef004580437.zip
core: New function gpgme_op_setownertrust
* src/Makefile.am (main_sources): Add new file. * src/context.h (ctx_op_data_id_t): Add OPDATA_SETOWNERTRUST. * src/engine.c, src/engine.h (_gpgme_engine_op_setownertrust): New. * src/engine-backend.h (engine_ops): Add 'setownertrust' and adjust all engine initializers. * src/engine-gpg.c (gpg_setownertrust): New. (_gpgme_engine_ops_gpg): Set setownertrust to gpg_setownertrust. * src/gpgme.h.in (gpgme_op_setownertrust_start, gpgme_op_setownertrust): New. * src/gpgme.def, src/libgpgme.vers: Add new functions. * src/setownertrust.c: New. * doc/gpgme.texi: Document new functions. * tests/Makefile.am (noinst_PROGRAMS): Add new test program. * tests/run-setownertrust.c: New. * tests/gpg/Makefile.am (c_tests): Add new file. (LDADD): Add @GPG_ERROR_LIBS@. * tests/gpg/t-setownertrust.c: New. * tests/gpg/t-support.h (have_gpg_version): New. -- This extends GPGME to support the --quick-set-ownertrust command added by GnuPG 2.4.6. This allows changing the owner trust of keys and enabling/disabling keys without using the editinteractor interface. GnuPG-bug-id: 7239
Diffstat (limited to 'tests/gpg/t-support.h')
-rw-r--r--tests/gpg/t-support.h24
1 files changed, 22 insertions, 2 deletions
diff --git a/tests/gpg/t-support.h b/tests/gpg/t-support.h
index ae70cecc..40b03b7f 100644
--- a/tests/gpg/t-support.h
+++ b/tests/gpg/t-support.h
@@ -19,19 +19,21 @@
* SPDX-License-Identifier: LGPL-2.1-or-later
*/
+#include <gpgme.h>
+#include <gpg-error.h>
+
#include <unistd.h>
#include <errno.h>
#include <stdlib.h>
#include <locale.h>
#include <limits.h>
#include <ctype.h>
+#include <string.h>
#ifdef HAVE_W32_SYSTEM
#include <windows.h>
#endif
-#include <gpgme.h>
-
#ifndef PGM
#define PGM "unknown program; define PGM before including t-support.h"
#endif
@@ -271,3 +273,21 @@ print_import_result (gpgme_import_result_t r)
r->not_imported,
r->skipped_v3_keys);
}
+
+
+/* Return true if the gpg engine's version is at least REQ_VERSION. */
+int
+have_gpg_version (const char *req_version)
+{
+ gpgme_engine_info_t engine_info;
+ init_gpgme (GPGME_PROTOCOL_OpenPGP);
+
+ fail_if_err (gpgme_get_engine_info (&engine_info));
+ for (; engine_info; engine_info = engine_info->next)
+ if (engine_info->protocol == GPGME_PROTOCOL_OpenPGP)
+ break;
+
+ test (engine_info);
+
+ return gpgrt_cmp_version (engine_info->version, req_version, 3) >= 0;
+}