diff options
author | JinWang An <jinwang.an@samsung.com> | 2021-12-01 16:54:38 +0900 |
---|---|---|
committer | JinWang An <jinwang.an@samsung.com> | 2021-12-01 16:54:38 +0900 |
commit | 098220f633aae872d150caa28de0f8b0f6074827 (patch) | |
tree | 4b4437e62ac7b2524a14f7f16446dbacbd7771ac /src | |
parent | 5793c283c7ddc13e62a1eef6ecd38d7e996d6e3f (diff) | |
download | gpgme-098220f633aae872d150caa28de0f8b0f6074827.tar.gz gpgme-098220f633aae872d150caa28de0f8b0f6074827.tar.bz2 gpgme-098220f633aae872d150caa28de0f8b0f6074827.zip |
Imported Upstream version 1.14.0upstream/1.14.0
Diffstat (limited to 'src')
-rw-r--r-- | src/Makefile.am | 7 | ||||
-rw-r--r-- | src/Makefile.in | 473 | ||||
-rw-r--r-- | src/context.h | 9 | ||||
-rw-r--r-- | src/engine-assuan.c | 1 | ||||
-rw-r--r-- | src/engine-backend.h | 1 | ||||
-rw-r--r-- | src/engine-g13.c | 1 | ||||
-rw-r--r-- | src/engine-gpg.c | 132 | ||||
-rw-r--r-- | src/engine-gpgconf.c | 1 | ||||
-rw-r--r-- | src/engine-gpgsm.c | 1 | ||||
-rw-r--r-- | src/engine-spawn.c | 1 | ||||
-rw-r--r-- | src/engine-uiserver.c | 1 | ||||
-rw-r--r-- | src/engine.c | 7 | ||||
-rw-r--r-- | src/export.c | 3 | ||||
-rw-r--r-- | src/gpgme-json.c | 6 | ||||
-rw-r--r-- | src/gpgme-tool.c | 2 | ||||
-rw-r--r-- | src/gpgme.c | 24 | ||||
-rw-r--r-- | src/gpgme.h.in | 64 | ||||
-rw-r--r-- | src/key.c | 1 | ||||
-rw-r--r-- | src/keylist.c | 11 | ||||
-rw-r--r-- | src/posix-util.c | 69 | ||||
-rw-r--r-- | src/verify.c | 2 | ||||
-rw-r--r-- | src/w32-io.c | 2 | ||||
-rw-r--r-- | src/w32-util.c | 5 |
23 files changed, 560 insertions, 264 deletions
diff --git a/src/Makefile.am b/src/Makefile.am index d85a85c..1bbb538 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -102,7 +102,7 @@ endif AM_CFLAGS = @LIBASSUAN_CFLAGS@ @GLIB_CFLAGS@ gpgme_tool_SOURCES = gpgme-tool.c argparse.c argparse.h -gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@ +gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@ @GPG_ERROR_LIBS@ gpgme_json_SOURCES = gpgme-json.c cJSON.c cJSON.h gpgme_json_LDADD = -lm libgpgme.la $(GPG_ERROR_LIBS) @@ -126,6 +126,7 @@ gpgme_res = versioninfo.lo no_undefined = -no-undefined export_symbols = -export-symbols $(srcdir)/gpgme.def extra_ltoptions = -XCClinker -static-libgcc +gpgme_w32_extra_libs = -lws2_32 install-def-file: -$(INSTALL) -d $(DESTDIR)$(libdir) @@ -152,7 +153,7 @@ libgpgme_la_LDFLAGS = $(no_undefined) $(export_symbols) $(extra_ltoptions) \ @LIBGPGME_LT_CURRENT@:@LIBGPGME_LT_REVISION@:@LIBGPGME_LT_AGE@ libgpgme_la_DEPENDENCIES = @LTLIBOBJS@ $(srcdir)/libgpgme.vers $(gpgme_deps) libgpgme_la_LIBADD = $(gpgme_res) @LIBASSUAN_LIBS@ @LTLIBOBJS@ \ - @GPG_ERROR_LIBS@ + @GPG_ERROR_LIBS@ $(gpgme_w32_extra_libs) if BUILD_W32_GLIB libgpgme_glib_la_LDFLAGS = \ @@ -162,7 +163,7 @@ libgpgme_glib_la_LDFLAGS = \ libgpgme_glib_la_DEPENDENCIES = @LTLIBOBJS@ \ $(srcdir)/libgpgme.vers $(gpgme_deps) libgpgme_glib_la_LIBADD = $(gpgme_res) @LIBASSUAN_LIBS@ @LTLIBOBJS@ \ - @GPG_ERROR_LIBS@ @GLIB_LIBS@ + @GPG_ERROR_LIBS@ @GLIB_LIBS@ $(gpgme_w32_extra_libs) endif install-data-local: install-def-file diff --git a/src/Makefile.in b/src/Makefile.in index beea485..f219399 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.15 from Makefile.am. +# Makefile.in generated by automake 1.16.1 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2014 Free Software Foundation, Inc. +# Copyright (C) 1994-2018 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -134,6 +134,11 @@ CONFIG_HEADER = $(top_builddir)/conf/config.h CONFIG_CLEAN_FILES = versioninfo.rc gpgme.pc gpgme-glib.pc gpgme.h \ gpgme-config CONFIG_CLEAN_VPATH_FILES = +am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" \ + "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ + "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)" \ + "$(DESTDIR)$(includedir)" +PROGRAMS = $(bin_PROGRAMS) $(libexec_PROGRAMS) am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; am__vpath_adj = case $$p in \ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ @@ -161,12 +166,9 @@ am__uninstall_files_from_dir = { \ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ $(am__cd) "$$dir" && rm -f $$files; }; \ } -am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \ - "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(bindir)" \ - "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)" \ - "$(DESTDIR)$(includedir)" LTLIBRARIES = $(lib_LTLIBRARIES) @HAVE_W32_SYSTEM_TRUE@am__DEPENDENCIES_1 = versioninfo.lo +am__DEPENDENCIES_2 = am__libgpgme_glib_la_SOURCES_DIST = util.h conversion.c b64dec.c \ get-env.c context.h ops.h parsetlv.c parsetlv.h mbox-util.c \ mbox-util.h data.h data.c data-fd.c data-stream.c data-mem.c \ @@ -235,10 +237,8 @@ libgpgme_la_OBJECTS = $(am_libgpgme_la_OBJECTS) libgpgme_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(libgpgme_la_LDFLAGS) $(LDFLAGS) -o $@ -PROGRAMS = $(bin_PROGRAMS) $(libexec_PROGRAMS) am_gpgme_json_OBJECTS = gpgme-json.$(OBJEXT) cJSON.$(OBJEXT) gpgme_json_OBJECTS = $(am_gpgme_json_OBJECTS) -am__DEPENDENCIES_2 = gpgme_json_DEPENDENCIES = libgpgme.la $(am__DEPENDENCIES_2) am_gpgme_tool_OBJECTS = gpgme-tool.$(OBJEXT) argparse.$(OBJEXT) gpgme_tool_OBJECTS = $(am_gpgme_tool_OBJECTS) @@ -261,7 +261,45 @@ am__v_at_0 = @ am__v_at_1 = DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)/conf depcomp = $(SHELL) $(top_srcdir)/build-aux/depcomp -am__depfiles_maybe = depfiles +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = $(DEPDIR)/setenv.Plo $(DEPDIR)/stpcpy.Plo \ + $(DEPDIR)/ttyname_r.Plo ./$(DEPDIR)/argparse.Po \ + ./$(DEPDIR)/assuan-support.Plo ./$(DEPDIR)/ath.Plo \ + ./$(DEPDIR)/b64dec.Plo ./$(DEPDIR)/cJSON.Po \ + ./$(DEPDIR)/conversion.Plo ./$(DEPDIR)/data-compat.Plo \ + ./$(DEPDIR)/data-estream.Plo ./$(DEPDIR)/data-fd.Plo \ + ./$(DEPDIR)/data-identify.Plo ./$(DEPDIR)/data-mem.Plo \ + ./$(DEPDIR)/data-stream.Plo ./$(DEPDIR)/data-user.Plo \ + ./$(DEPDIR)/data.Plo ./$(DEPDIR)/debug.Plo \ + ./$(DEPDIR)/decrypt-verify.Plo ./$(DEPDIR)/decrypt.Plo \ + ./$(DEPDIR)/delete.Plo ./$(DEPDIR)/dirinfo.Plo \ + ./$(DEPDIR)/edit.Plo ./$(DEPDIR)/encrypt-sign.Plo \ + ./$(DEPDIR)/encrypt.Plo ./$(DEPDIR)/engine-assuan.Plo \ + ./$(DEPDIR)/engine-g13.Plo ./$(DEPDIR)/engine-gpg.Plo \ + ./$(DEPDIR)/engine-gpgconf.Plo ./$(DEPDIR)/engine-gpgsm.Plo \ + ./$(DEPDIR)/engine-spawn.Plo ./$(DEPDIR)/engine-uiserver.Plo \ + ./$(DEPDIR)/engine.Plo ./$(DEPDIR)/error.Plo \ + ./$(DEPDIR)/export.Plo ./$(DEPDIR)/genkey.Plo \ + ./$(DEPDIR)/get-env.Plo ./$(DEPDIR)/getauditlog.Plo \ + ./$(DEPDIR)/gpgconf.Plo ./$(DEPDIR)/gpgme-json.Po \ + ./$(DEPDIR)/gpgme-tool.Po ./$(DEPDIR)/gpgme-w32spawn.Po \ + ./$(DEPDIR)/gpgme.Plo ./$(DEPDIR)/import.Plo \ + ./$(DEPDIR)/key.Plo ./$(DEPDIR)/keylist.Plo \ + ./$(DEPDIR)/keysign.Plo ./$(DEPDIR)/mbox-util.Plo \ + ./$(DEPDIR)/op-support.Plo ./$(DEPDIR)/opassuan.Plo \ + ./$(DEPDIR)/parsetlv.Plo ./$(DEPDIR)/passphrase.Plo \ + ./$(DEPDIR)/passwd.Plo ./$(DEPDIR)/posix-io.Plo \ + ./$(DEPDIR)/posix-util.Plo ./$(DEPDIR)/progress.Plo \ + ./$(DEPDIR)/queryswdb.Plo ./$(DEPDIR)/sig-notation.Plo \ + ./$(DEPDIR)/sign.Plo ./$(DEPDIR)/signers.Plo \ + ./$(DEPDIR)/spawn.Plo ./$(DEPDIR)/status-table.Plo \ + ./$(DEPDIR)/tofupolicy.Plo ./$(DEPDIR)/trust-item.Plo \ + ./$(DEPDIR)/trustlist.Plo ./$(DEPDIR)/verify.Plo \ + ./$(DEPDIR)/version.Plo ./$(DEPDIR)/vfs-create.Plo \ + ./$(DEPDIR)/vfs-mount.Plo ./$(DEPDIR)/w32-glib-io.Plo \ + ./$(DEPDIR)/w32-io.Plo ./$(DEPDIR)/w32-util.Plo \ + ./$(DEPDIR)/wait-global.Plo ./$(DEPDIR)/wait-private.Plo \ + ./$(DEPDIR)/wait-user.Plo ./$(DEPDIR)/wait.Plo am__mv = mv -f COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) @@ -508,6 +546,7 @@ program_transform_name = @program_transform_name@ psdir = @psdir@ pyexecdir = @pyexecdir@ pythondir = @pythondir@ +runstatedir = @runstatedir@ sbindir = @sbindir@ sharedstatedir = @sharedstatedir@ srcdir = @srcdir@ @@ -575,7 +614,7 @@ libgpgme_la_SOURCES = $(main_sources) $(system_components_not_extra) # versions, because then every object file is only compiled once. AM_CFLAGS = @LIBASSUAN_CFLAGS@ @GLIB_CFLAGS@ gpgme_tool_SOURCES = gpgme-tool.c argparse.c argparse.h -gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@ +gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@ @GPG_ERROR_LIBS@ gpgme_json_SOURCES = gpgme-json.c cJSON.c cJSON.h gpgme_json_LDADD = -lm libgpgme.la $(GPG_ERROR_LIBS) @HAVE_W32_SYSTEM_TRUE@RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) @@ -589,6 +628,7 @@ gpgme_json_LDADD = -lm libgpgme.la $(GPG_ERROR_LIBS) @HAVE_W32_SYSTEM_TRUE@export_symbols = -export-symbols $(srcdir)/gpgme.def @HAVE_W32_SYSTEM_FALSE@extra_ltoptions = @HAVE_W32_SYSTEM_TRUE@extra_ltoptions = -XCClinker -static-libgcc +@HAVE_W32_SYSTEM_TRUE@gpgme_w32_extra_libs = -lws2_32 @HAVE_W32_SYSTEM_FALSE@gpgme_deps = @HAVE_W32_SYSTEM_TRUE@gpgme_deps = $(gpgme_res) gpgme.def libgpgme_la_LDFLAGS = $(no_undefined) $(export_symbols) $(extra_ltoptions) \ @@ -597,7 +637,7 @@ libgpgme_la_LDFLAGS = $(no_undefined) $(export_symbols) $(extra_ltoptions) \ libgpgme_la_DEPENDENCIES = @LTLIBOBJS@ $(srcdir)/libgpgme.vers $(gpgme_deps) libgpgme_la_LIBADD = $(gpgme_res) @LIBASSUAN_LIBS@ @LTLIBOBJS@ \ - @GPG_ERROR_LIBS@ + @GPG_ERROR_LIBS@ $(gpgme_w32_extra_libs) @BUILD_W32_GLIB_TRUE@libgpgme_glib_la_LDFLAGS = \ @BUILD_W32_GLIB_TRUE@ $(no_undefined) $(export_symbols) $(extra_ltoptions) \ @@ -608,7 +648,7 @@ libgpgme_la_LIBADD = $(gpgme_res) @LIBASSUAN_LIBS@ @LTLIBOBJS@ \ @BUILD_W32_GLIB_TRUE@ $(srcdir)/libgpgme.vers $(gpgme_deps) @BUILD_W32_GLIB_TRUE@libgpgme_glib_la_LIBADD = $(gpgme_res) @LIBASSUAN_LIBS@ @LTLIBOBJS@ \ -@BUILD_W32_GLIB_TRUE@ @GPG_ERROR_LIBS@ @GLIB_LIBS@ +@BUILD_W32_GLIB_TRUE@ @GPG_ERROR_LIBS@ @GLIB_LIBS@ $(gpgme_w32_extra_libs) all: all-am @@ -631,8 +671,8 @@ Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status *config.status*) \ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ *) \ - echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ - cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ esac; $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) @@ -653,47 +693,6 @@ gpgme.h: $(top_builddir)/config.status $(srcdir)/gpgme.h.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ gpgme-config: $(top_builddir)/config.status $(srcdir)/gpgme-config.in cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ - -install-libLTLIBRARIES: $(lib_LTLIBRARIES) - @$(NORMAL_INSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - list2=; for p in $$list; do \ - if test -f $$p; then \ - list2="$$list2 $$p"; \ - else :; fi; \ - done; \ - test -z "$$list2" || { \ - echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ - $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ - } - -uninstall-libLTLIBRARIES: - @$(NORMAL_UNINSTALL) - @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ - for p in $$list; do \ - $(am__strip_dir) \ - echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ - $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ - done - -clean-libLTLIBRARIES: - -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) - @list='$(lib_LTLIBRARIES)'; \ - locs=`for p in $$list; do echo $$p; done | \ - sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ - sort -u`; \ - test -z "$$locs" || { \ - echo rm -f $${locs}; \ - rm -f $${locs}; \ - } - -libgpgme-glib.la: $(libgpgme_glib_la_OBJECTS) $(libgpgme_glib_la_DEPENDENCIES) $(EXTRA_libgpgme_glib_la_DEPENDENCIES) - $(AM_V_CCLD)$(libgpgme_glib_la_LINK) $(am_libgpgme_glib_la_rpath) $(libgpgme_glib_la_OBJECTS) $(libgpgme_glib_la_LIBADD) $(LIBS) - -libgpgme.la: $(libgpgme_la_OBJECTS) $(libgpgme_la_DEPENDENCIES) $(EXTRA_libgpgme_la_DEPENDENCIES) - $(AM_V_CCLD)$(libgpgme_la_LINK) -rpath $(libdir) $(libgpgme_la_OBJECTS) $(libgpgme_la_LIBADD) $(LIBS) install-binPROGRAMS: $(bin_PROGRAMS) @$(NORMAL_INSTALL) @list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \ @@ -793,6 +792,47 @@ clean-libexecPROGRAMS: echo " rm -f" $$list; \ rm -f $$list +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libgpgme-glib.la: $(libgpgme_glib_la_OBJECTS) $(libgpgme_glib_la_DEPENDENCIES) $(EXTRA_libgpgme_glib_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgpgme_glib_la_LINK) $(am_libgpgme_glib_la_rpath) $(libgpgme_glib_la_OBJECTS) $(libgpgme_glib_la_LIBADD) $(LIBS) + +libgpgme.la: $(libgpgme_la_OBJECTS) $(libgpgme_la_DEPENDENCIES) $(EXTRA_libgpgme_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgpgme_la_LINK) -rpath $(libdir) $(libgpgme_la_OBJECTS) $(libgpgme_la_LIBADD) $(LIBS) + gpgme-json$(EXEEXT): $(gpgme_json_OBJECTS) $(gpgme_json_DEPENDENCIES) $(EXTRA_gpgme_json_DEPENDENCIES) @rm -f gpgme-json$(EXEEXT) $(AM_V_CCLD)$(LINK) $(gpgme_json_OBJECTS) $(gpgme_json_LDADD) $(LIBS) @@ -846,82 +886,88 @@ mostlyclean-compile: distclean-compile: -rm -f *.tab.c -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/setenv.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/stpcpy.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ttyname_r.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argparse.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/assuan-support.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ath.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/b64dec.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cJSON.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conversion.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-compat.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-estream.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-fd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-identify.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-mem.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-stream.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-user.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decrypt-verify.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decrypt.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/delete.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirinfo.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edit.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/encrypt-sign.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/encrypt.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine-assuan.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine-g13.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine-gpg.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine-gpgconf.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine-gpgsm.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine-spawn.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine-uiserver.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/export.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/genkey.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get-env.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getauditlog.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgconf.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgme-json.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgme-tool.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgme-w32spawn.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgme.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/import.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/key.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keylist.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keysign.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbox-util.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/op-support.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opassuan.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parsetlv.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/passphrase.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/passwd.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/posix-io.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/posix-util.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progress.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/queryswdb.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sig-notation.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sign.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signers.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spawn.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-table.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tofupolicy.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trust-item.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trustlist.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/verify.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vfs-create.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vfs-mount.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/w32-glib-io.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/w32-io.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/w32-util.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wait-global.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wait-private.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wait-user.Plo@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wait.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/setenv.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/stpcpy.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/ttyname_r.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/argparse.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/assuan-support.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ath.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/b64dec.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/cJSON.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/conversion.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-compat.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-estream.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-fd.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-identify.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-mem.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-stream.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data-user.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/data.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/debug.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decrypt-verify.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/decrypt.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/delete.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dirinfo.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edit.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/encrypt-sign.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/encrypt.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine-assuan.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine-g13.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine-gpg.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine-gpgconf.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine-gpgsm.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine-spawn.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine-uiserver.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/engine.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/error.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/export.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/genkey.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/get-env.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/getauditlog.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgconf.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgme-json.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgme-tool.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgme-w32spawn.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gpgme.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/import.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/key.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keylist.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/keysign.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mbox-util.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/op-support.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opassuan.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/parsetlv.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/passphrase.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/passwd.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/posix-io.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/posix-util.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/progress.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/queryswdb.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sig-notation.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/sign.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/signers.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/spawn.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/status-table.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/tofupolicy.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trust-item.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/trustlist.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/verify.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/version.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vfs-create.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vfs-mount.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/w32-glib-io.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/w32-io.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/w32-util.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wait-global.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wait-private.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wait-user.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/wait.Plo@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) .c.o: @am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< @@ -1065,7 +1111,10 @@ cscopelist-am: $(am__tagged_files) distclean-tags: -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -distdir: $(DISTFILES) +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ list='$(DISTFILES)'; \ @@ -1097,12 +1146,12 @@ distdir: $(DISTFILES) done check-am: all-am check: check-am -all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(SCRIPTS) $(DATA) \ +all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(SCRIPTS) $(DATA) \ $(HEADERS) install-binPROGRAMS: install-libLTLIBRARIES installdirs: - for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"; do \ + for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libexecdir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"; do \ test -z "$$dir" || $(MKDIR_P) "$$dir"; \ done install: install-am @@ -1141,7 +1190,82 @@ clean-am: clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libexecPROGRAMS clean-libtool mostlyclean-am distclean: distclean-am - -rm -rf $(DEPDIR) ./$(DEPDIR) + -rm -f $(DEPDIR)/setenv.Plo + -rm -f $(DEPDIR)/stpcpy.Plo + -rm -f $(DEPDIR)/ttyname_r.Plo + -rm -f ./$(DEPDIR)/argparse.Po + -rm -f ./$(DEPDIR)/assuan-support.Plo + -rm -f ./$(DEPDIR)/ath.Plo + -rm -f ./$(DEPDIR)/b64dec.Plo + -rm -f ./$(DEPDIR)/cJSON.Po + -rm -f ./$(DEPDIR)/conversion.Plo + -rm -f ./$(DEPDIR)/data-compat.Plo + -rm -f ./$(DEPDIR)/data-estream.Plo + -rm -f ./$(DEPDIR)/data-fd.Plo + -rm -f ./$(DEPDIR)/data-identify.Plo + -rm -f ./$(DEPDIR)/data-mem.Plo + -rm -f ./$(DEPDIR)/data-stream.Plo + -rm -f ./$(DEPDIR)/data-user.Plo + -rm -f ./$(DEPDIR)/data.Plo + -rm -f ./$(DEPDIR)/debug.Plo + -rm -f ./$(DEPDIR)/decrypt-verify.Plo + -rm -f ./$(DEPDIR)/decrypt.Plo + -rm -f ./$(DEPDIR)/delete.Plo + -rm -f ./$(DEPDIR)/dirinfo.Plo + -rm -f ./$(DEPDIR)/edit.Plo + -rm -f ./$(DEPDIR)/encrypt-sign.Plo + -rm -f ./$(DEPDIR)/encrypt.Plo + -rm -f ./$(DEPDIR)/engine-assuan.Plo + -rm -f ./$(DEPDIR)/engine-g13.Plo + -rm -f ./$(DEPDIR)/engine-gpg.Plo + -rm -f ./$(DEPDIR)/engine-gpgconf.Plo + -rm -f ./$(DEPDIR)/engine-gpgsm.Plo + -rm -f ./$(DEPDIR)/engine-spawn.Plo + -rm -f ./$(DEPDIR)/engine-uiserver.Plo + -rm -f ./$(DEPDIR)/engine.Plo + -rm -f ./$(DEPDIR)/error.Plo + -rm -f ./$(DEPDIR)/export.Plo + -rm -f ./$(DEPDIR)/genkey.Plo + -rm -f ./$(DEPDIR)/get-env.Plo + -rm -f ./$(DEPDIR)/getauditlog.Plo + -rm -f ./$(DEPDIR)/gpgconf.Plo + -rm -f ./$(DEPDIR)/gpgme-json.Po + -rm -f ./$(DEPDIR)/gpgme-tool.Po + -rm -f ./$(DEPDIR)/gpgme-w32spawn.Po + -rm -f ./$(DEPDIR)/gpgme.Plo + -rm -f ./$(DEPDIR)/import.Plo + -rm -f ./$(DEPDIR)/key.Plo + -rm -f ./$(DEPDIR)/keylist.Plo + -rm -f ./$(DEPDIR)/keysign.Plo + -rm -f ./$(DEPDIR)/mbox-util.Plo + -rm -f ./$(DEPDIR)/op-support.Plo + -rm -f ./$(DEPDIR)/opassuan.Plo + -rm -f ./$(DEPDIR)/parsetlv.Plo + -rm -f ./$(DEPDIR)/passphrase.Plo + -rm -f ./$(DEPDIR)/passwd.Plo + -rm -f ./$(DEPDIR)/posix-io.Plo + -rm -f ./$(DEPDIR)/posix-util.Plo + -rm -f ./$(DEPDIR)/progress.Plo + -rm -f ./$(DEPDIR)/queryswdb.Plo + -rm -f ./$(DEPDIR)/sig-notation.Plo + -rm -f ./$(DEPDIR)/sign.Plo + -rm -f ./$(DEPDIR)/signers.Plo + -rm -f ./$(DEPDIR)/spawn.Plo + -rm -f ./$(DEPDIR)/status-table.Plo + -rm -f ./$(DEPDIR)/tofupolicy.Plo + -rm -f ./$(DEPDIR)/trust-item.Plo + -rm -f ./$(DEPDIR)/trustlist.Plo + -rm -f ./$(DEPDIR)/verify.Plo + -rm -f ./$(DEPDIR)/version.Plo + -rm -f ./$(DEPDIR)/vfs-create.Plo + -rm -f ./$(DEPDIR)/vfs-mount.Plo + -rm -f ./$(DEPDIR)/w32-glib-io.Plo + -rm -f ./$(DEPDIR)/w32-io.Plo + -rm -f ./$(DEPDIR)/w32-util.Plo + -rm -f ./$(DEPDIR)/wait-global.Plo + -rm -f ./$(DEPDIR)/wait-private.Plo + -rm -f ./$(DEPDIR)/wait-user.Plo + -rm -f ./$(DEPDIR)/wait.Plo -rm -f Makefile distclean-am: clean-am distclean-compile distclean-generic \ distclean-tags @@ -1189,7 +1313,82 @@ install-ps-am: installcheck-am: maintainer-clean: maintainer-clean-am - -rm -rf $(DEPDIR) ./$(DEPDIR) + -rm -f $(DEPDIR)/setenv.Plo + -rm -f $(DEPDIR)/stpcpy.Plo + -rm -f $(DEPDIR)/ttyname_r.Plo + -rm -f ./$(DEPDIR)/argparse.Po + -rm -f ./$(DEPDIR)/assuan-support.Plo + -rm -f ./$(DEPDIR)/ath.Plo + -rm -f ./$(DEPDIR)/b64dec.Plo + -rm -f ./$(DEPDIR)/cJSON.Po + -rm -f ./$(DEPDIR)/conversion.Plo + -rm -f ./$(DEPDIR)/data-compat.Plo + -rm -f ./$(DEPDIR)/data-estream.Plo + -rm -f ./$(DEPDIR)/data-fd.Plo + -rm -f ./$(DEPDIR)/data-identify.Plo + -rm -f ./$(DEPDIR)/data-mem.Plo + -rm -f ./$(DEPDIR)/data-stream.Plo + -rm -f ./$(DEPDIR)/data-user.Plo + -rm -f ./$(DEPDIR)/data.Plo + -rm -f ./$(DEPDIR)/debug.Plo + -rm -f ./$(DEPDIR)/decrypt-verify.Plo + -rm -f ./$(DEPDIR)/decrypt.Plo + -rm -f ./$(DEPDIR)/delete.Plo + -rm -f ./$(DEPDIR)/dirinfo.Plo + -rm -f ./$(DEPDIR)/edit.Plo + -rm -f ./$(DEPDIR)/encrypt-sign.Plo + -rm -f ./$(DEPDIR)/encrypt.Plo + -rm -f ./$(DEPDIR)/engine-assuan.Plo + -rm -f ./$(DEPDIR)/engine-g13.Plo + -rm -f ./$(DEPDIR)/engine-gpg.Plo + -rm -f ./$(DEPDIR)/engine-gpgconf.Plo + -rm -f ./$(DEPDIR)/engine-gpgsm.Plo + -rm -f ./$(DEPDIR)/engine-spawn.Plo + -rm -f ./$(DEPDIR)/engine-uiserver.Plo + -rm -f ./$(DEPDIR)/engine.Plo + -rm -f ./$(DEPDIR)/error.Plo + -rm -f ./$(DEPDIR)/export.Plo + -rm -f ./$(DEPDIR)/genkey.Plo + -rm -f ./$(DEPDIR)/get-env.Plo + -rm -f ./$(DEPDIR)/getauditlog.Plo + -rm -f ./$(DEPDIR)/gpgconf.Plo + -rm -f ./$(DEPDIR)/gpgme-json.Po + -rm -f ./$(DEPDIR)/gpgme-tool.Po + -rm -f ./$(DEPDIR)/gpgme-w32spawn.Po + -rm -f ./$(DEPDIR)/gpgme.Plo + -rm -f ./$(DEPDIR)/import.Plo + -rm -f ./$(DEPDIR)/key.Plo + -rm -f ./$(DEPDIR)/keylist.Plo + -rm -f ./$(DEPDIR)/keysign.Plo + -rm -f ./$(DEPDIR)/mbox-util.Plo + -rm -f ./$(DEPDIR)/op-support.Plo + -rm -f ./$(DEPDIR)/opassuan.Plo + -rm -f ./$(DEPDIR)/parsetlv.Plo + -rm -f ./$(DEPDIR)/passphrase.Plo + -rm -f ./$(DEPDIR)/passwd.Plo + -rm -f ./$(DEPDIR)/posix-io.Plo + -rm -f ./$(DEPDIR)/posix-util.Plo + -rm -f ./$(DEPDIR)/progress.Plo + -rm -f ./$(DEPDIR)/queryswdb.Plo + -rm -f ./$(DEPDIR)/sig-notation.Plo + -rm -f ./$(DEPDIR)/sign.Plo + -rm -f ./$(DEPDIR)/signers.Plo + -rm -f ./$(DEPDIR)/spawn.Plo + -rm -f ./$(DEPDIR)/status-table.Plo + -rm -f ./$(DEPDIR)/tofupolicy.Plo + -rm -f ./$(DEPDIR)/trust-item.Plo + -rm -f ./$(DEPDIR)/trustlist.Plo + -rm -f ./$(DEPDIR)/verify.Plo + -rm -f ./$(DEPDIR)/version.Plo + -rm -f ./$(DEPDIR)/vfs-create.Plo + -rm -f ./$(DEPDIR)/vfs-mount.Plo + -rm -f ./$(DEPDIR)/w32-glib-io.Plo + -rm -f ./$(DEPDIR)/w32-io.Plo + -rm -f ./$(DEPDIR)/w32-util.Plo + -rm -f ./$(DEPDIR)/wait-global.Plo + -rm -f ./$(DEPDIR)/wait-private.Plo + -rm -f ./$(DEPDIR)/wait-user.Plo + -rm -f ./$(DEPDIR)/wait.Plo -rm -f Makefile maintainer-clean-am: distclean-am maintainer-clean-generic @@ -1213,7 +1412,7 @@ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \ .MAKE: install-am install-strip -.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean \ +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \ clean-libexecPROGRAMS clean-libtool cscopelist-am ctags \ ctags-am distclean distclean-compile distclean-generic \ diff --git a/src/context.h b/src/context.h index d65bf9b..25dfc79 100644 --- a/src/context.h +++ b/src/context.h @@ -118,6 +118,12 @@ struct gpgme_context * flag is cleared with each operation. */ unsigned int redraw_suggested : 1; + /* True if the option --include-key-block shall be passed to gpg. */ + unsigned int include_key_block : 1; + + /* True if the option --auto-key-import shall be passed to gpg. */ + unsigned int auto_key_import : 1; + /* True if the option --auto-key-retrieve shall be passed to gpg. */ unsigned int auto_key_retrieve : 1; @@ -128,6 +134,9 @@ struct gpgme_context * after the operation. */ unsigned int ignore_mdc_error : 1; + /* Pass --expert to gpg edit key. */ + unsigned int extended_edit : 1; + /* Flags for keylist mode. */ gpgme_keylist_mode_t keylist_mode; diff --git a/src/engine-assuan.c b/src/engine-assuan.c index 497397d..a40328f 100644 --- a/src/engine-assuan.c +++ b/src/engine-assuan.c @@ -826,7 +826,6 @@ struct engine_ops _gpgme_engine_ops_assuan = NULL, /* keysign */ NULL, /* tofu_policy */ NULL, /* sign */ - NULL, /* trustlist */ NULL, /* verify */ NULL, /* getauditlog */ llass_transact, /* opassuan_transact */ diff --git a/src/engine-backend.h b/src/engine-backend.h index 4f33da1..c8bfad9 100644 --- a/src/engine-backend.h +++ b/src/engine-backend.h @@ -115,7 +115,6 @@ struct engine_ops gpgme_sig_mode_t mode, int use_armor, int use_textmode, int include_certs, gpgme_ctx_t ctx /* FIXME */); - gpgme_error_t (*trustlist) (void *engine, const char *pattern); gpgme_error_t (*verify) (void *engine, gpgme_data_t sig, gpgme_data_t signed_text, gpgme_data_t plaintext, gpgme_ctx_t ctx); diff --git a/src/engine-g13.c b/src/engine-g13.c index 19dd8f4..45f6c94 100644 --- a/src/engine-g13.c +++ b/src/engine-g13.c @@ -806,7 +806,6 @@ struct engine_ops _gpgme_engine_ops_g13 = NULL, /* keysign */ NULL, /* tofu_policy */ NULL, /* sign */ - NULL, /* trustlist */ NULL, /* verify */ NULL, /* getauditlog */ g13_transact, diff --git a/src/engine-gpg.c b/src/engine-gpg.c index dc2d945..af2533d 100644 --- a/src/engine-gpg.c +++ b/src/engine-gpg.c @@ -148,6 +148,8 @@ struct engine_gpg unsigned int no_symkey_cache : 1; unsigned int offline : 1; unsigned int ignore_mdc_error : 1; + unsigned int include_key_block : 1; + unsigned int auto_key_import : 1; } flags; /* NULL or the data object fed to --override_session_key-fd. */ @@ -686,6 +688,13 @@ gpg_set_engine_flags (void *engine, const gpgme_ctx_t ctx) gpg->flags.ignore_mdc_error = !!ctx->ignore_mdc_error; + if (have_gpg_version (gpg, "2.2.20")) + { + if (ctx->auto_key_import) + gpg->flags.auto_key_import = 1; + if (ctx->include_key_block) + gpg->flags.include_key_block = 1; + } } @@ -860,7 +869,7 @@ build_argv (engine_gpg_t gpg, const char *pgmname) gpgme_error_t err; struct arg_and_data_s *a; struct fd_data_map_s *fd_data_map; - size_t datac=0, argc=0; + size_t datac=0, argc=0, allocated_argc=0; char **argv; int need_special = 0; int use_agent = 0; @@ -908,18 +917,33 @@ build_argv (engine_gpg_t gpg, const char *pgmname) /* fprintf (stderr, "build_argv: arg=`%s'\n", a->arg );*/ } } + if (need_special) argc++; if (use_agent) argc++; + if (*gpg->request_origin) + argc++; + if (gpg->auto_key_locate) + argc++; + if (gpg->trust_model) + argc++; + if (gpg->flags.no_symkey_cache) + argc++; + if (gpg->flags.ignore_mdc_error) + argc++; + if (gpg->flags.offline) + argc++; if (gpg->pinentry_mode) argc++; if (!gpg->cmd.used) - argc++; /* --batch */ - argc += 4; /* --no-sk-comments, --request-origin, --no-symkey-cache */ - /* --disable-dirmngr */ + argc++; /* --batch */ + + argc++; /* --no-sk-comments */ argv = calloc (argc + 1, sizeof *argv); + allocated_argc = argc; + if (!argv) return gpg_error_from_syserror (); fd_data_map = calloc (datac + 1, sizeof *fd_data_map); @@ -964,6 +988,8 @@ build_argv (engine_gpg_t gpg, const char *pgmname) } argc++; } + /* NOTE: If you add a new argument here. Ensure that + argc is counted up above to allocate enough memory. */ if (*gpg->request_origin) { @@ -1191,6 +1217,11 @@ build_argv (engine_gpg_t gpg, const char *pgmname) argc++; } } + /* Saveguard against adding a new argument without properly + counting up the argc used for allocation at the beginning + of this function. It would be better to use a dynamically + allocated array like ccparray in gnupg. */ + assert (argc <= allocated_argc); gpg->argv = argv; gpg->fd_data_map = fd_data_map; @@ -1681,6 +1712,9 @@ gpg_decrypt (void *engine, if (!err && auto_key_retrieve) err = add_arg (gpg, "--auto-key-retrieve"); + if (!err && gpg->flags.auto_key_import) + err = add_arg (gpg, "--auto-key-import"); + if (!err && override_session_key && *override_session_key) { if (have_gpg_version (gpg, "2.1.16")) @@ -1695,12 +1729,15 @@ gpg_decrypt (void *engine, strlen (override_session_key), 1); if (!err) { - /* We add --no-keyring because a keyring is not required - * when we are overriding the session key. It would + /* When we are not trying to verify signatures as well, + * we add --no-keyring because a keyring is not required + * for decryption when overriding the session key. It would * work without that option but --no-keyring avoids that * gpg return a failure due to a missing key log_error() * diagnostic. --no-keyring is supported since 2.1.14. */ - err = add_arg (gpg, "--no-keyring"); + + if (!(flags & GPGME_DECRYPT_VERIFY)) + err = add_arg (gpg, "--no-keyring"); if (!err) err = add_arg (gpg, "--override-session-key-fd"); if (!err) @@ -1826,8 +1863,13 @@ append_args_from_sender (engine_gpg_t gpg, gpgme_ctx_t ctx) } +#define NOTATION_FLAG_SIG 1 /* Use --sig-notation (default)*/ +#define NOTATION_FLAG_CERT 2 /* Use --cert-notation */ +#define NOTATION_FLAG_SET 3 /* Use --set-notation */ + static gpgme_error_t -append_args_from_sig_notations (engine_gpg_t gpg, gpgme_ctx_t ctx /* FIXME */) +append_args_from_sig_notations (engine_gpg_t gpg, gpgme_ctx_t ctx /* FIXME */, + int flags) { gpgme_error_t err = 0; gpgme_sig_notation_t notation; @@ -1868,7 +1910,14 @@ append_args_from_sig_notations (engine_gpg_t gpg, gpgme_ctx_t ctx /* FIXME */) } if (!err) - err = add_arg (gpg, "--sig-notation"); + { + if ((flags & NOTATION_FLAG_SET)) + err = add_arg (gpg, "--set-notation"); + else if ((flags & NOTATION_FLAG_CERT)) + err = add_arg (gpg, "--cert-notation"); + else + err = add_arg (gpg, "--sig-notation"); + } if (!err) err = add_arg (gpg, arg); @@ -1919,10 +1968,15 @@ gpg_edit (void *engine, int type, gpgme_key_t key, gpgme_data_t out, gpgme_error_t err; err = add_arg (gpg, "--with-colons"); + + if (!err && ctx->extended_edit) + err = add_arg (gpg, "--expert"); if (!err) err = append_args_from_signers (gpg, ctx); if (!err) - err = add_arg (gpg, type == 0 ? "--edit-key" : "--card-edit"); + err = append_args_from_sig_notations (gpg, ctx, NOTATION_FLAG_CERT); + if (!err) + err = add_arg (gpg, type == 0 ? "--edit-key" : "--card-edit"); if (!err) err = add_data (gpg, out, 1, 1); if (!err) @@ -2134,6 +2188,9 @@ gpg_encrypt (void *engine, gpgme_key_t recp[], const char *recpstring, && have_gpg_version (gpg, "2.1.14")) err = add_arg (gpg, "--mimemode"); + if (!err && gpg->flags.include_key_block) + err = add_arg (gpg, "--include-key-block"); + if (recp || recpstring) { /* If we know that all recipients are valid (full or ultimate trust) @@ -2209,6 +2266,9 @@ gpg_encrypt_sign (void *engine, gpgme_key_t recp[], && have_gpg_version (gpg, "2.1.14")) err = add_arg (gpg, "--mimemode"); + if (!err && gpg->flags.include_key_block) + err = add_arg (gpg, "--include-key-block"); + if (recp || recpstring) { /* If we know that all recipients are valid (full or ultimate trust) @@ -2232,7 +2292,7 @@ gpg_encrypt_sign (void *engine, gpgme_key_t recp[], err = append_args_from_sender (gpg, ctx); if (!err) - err = append_args_from_sig_notations (gpg, ctx); + err = append_args_from_sig_notations (gpg, ctx, NOTATION_FLAG_SIG); /* Tell the gpg object about the data. */ if (!err) @@ -2270,6 +2330,7 @@ export_common (engine_gpg_t gpg, gpgme_export_mode_t mode, if ((mode & ~(GPGME_EXPORT_MODE_EXTERN |GPGME_EXPORT_MODE_MINIMAL + |GPGME_EXPORT_MODE_SSH |GPGME_EXPORT_MODE_SECRET))) return gpg_error (GPG_ERR_NOT_SUPPORTED); @@ -2285,6 +2346,15 @@ export_common (engine_gpg_t gpg, gpgme_export_mode_t mode, if (err) ; + else if ((mode & GPGME_EXPORT_MODE_SSH)) + { + if (have_gpg_version (gpg, "2.1.11")) + err = add_arg (gpg, "--export-ssh-key"); + else + err = gpg_error (GPG_ERR_NOT_SUPPORTED); + if (!err) + err = add_data (gpg, keydata, 1, 1); + } else if ((mode & GPGME_EXPORT_MODE_EXTERN)) { err = add_arg (gpg, "--send-keys"); @@ -2937,7 +3007,15 @@ gpg_keylist_build_options (engine_gpg_t gpg, int secret_only, err = add_arg (gpg, "--with-tofu-info"); if (!err && (mode & GPGME_KEYLIST_MODE_WITH_SECRET)) - err = add_arg (gpg, "--with-secret"); + { + err = add_arg (gpg, "--with-secret"); + err = add_arg (gpg, "--with-keygrip"); + } + else if (!err && (mode & GPGME_KEYLIST_MODE_WITH_KEYGRIP)) + { + /* Explicitly requests the keygrip. */ + err = add_arg (gpg, "--with-keygrip"); + } if (!err && (mode & GPGME_KEYLIST_MODE_SIGS) @@ -3201,12 +3279,14 @@ gpg_sign (void *engine, gpgme_data_t in, gpgme_data_t out, } } + if (!err && gpg->flags.include_key_block) + err = add_arg (gpg, "--include-key-block"); if (!err) err = append_args_from_signers (gpg, ctx); if (!err) err = append_args_from_sender (gpg, ctx); if (!err) - err = append_args_from_sig_notations (gpg, ctx); + err = append_args_from_sig_notations (gpg, ctx, NOTATION_FLAG_SIG); if (gpgme_data_get_file_name (in)) { @@ -3233,29 +3313,6 @@ gpg_sign (void *engine, gpgme_data_t in, gpgme_data_t out, } static gpgme_error_t -gpg_trustlist (void *engine, const char *pattern) -{ - engine_gpg_t gpg = engine; - gpgme_error_t err; - - err = add_arg (gpg, "--with-colons"); - if (!err) - err = add_arg (gpg, "--list-trust-path"); - - /* Tell the gpg object about the data. */ - if (!err) - err = add_arg (gpg, "--"); - if (!err) - err = add_arg (gpg, pattern); - - if (!err) - err = start (gpg); - - return err; -} - - -static gpgme_error_t gpg_verify (void *engine, gpgme_data_t sig, gpgme_data_t signed_text, gpgme_data_t plaintext, gpgme_ctx_t ctx) { @@ -3263,6 +3320,8 @@ gpg_verify (void *engine, gpgme_data_t sig, gpgme_data_t signed_text, gpgme_error_t err; err = append_args_from_sender (gpg, ctx); + if (!err && gpg->flags.auto_key_import) + err = add_arg (gpg, "--auto-key-import"); if (!err && ctx->auto_key_retrieve) err = add_arg (gpg, "--auto-key-retrieve"); @@ -3403,7 +3462,6 @@ struct engine_ops _gpgme_engine_ops_gpg = gpg_keysign, gpg_tofu_policy, /* tofu_policy */ gpg_sign, - gpg_trustlist, gpg_verify, gpg_getauditlog, NULL, /* opassuan_transact */ diff --git a/src/engine-gpgconf.c b/src/engine-gpgconf.c index 303ba64..d4465e9 100644 --- a/src/engine-gpgconf.c +++ b/src/engine-gpgconf.c @@ -1304,7 +1304,6 @@ struct engine_ops _gpgme_engine_ops_gpgconf = NULL, /* keysign */ NULL, /* tofu_policy */ NULL, /* sign */ - NULL, /* trustlist */ NULL, /* verify */ NULL, /* getauditlog */ NULL, /* opassuan_transact */ diff --git a/src/engine-gpgsm.c b/src/engine-gpgsm.c index ae5d8ef..671b385 100644 --- a/src/engine-gpgsm.c +++ b/src/engine-gpgsm.c @@ -2324,7 +2324,6 @@ struct engine_ops _gpgme_engine_ops_gpgsm = NULL, /* keysign */ NULL, /* tofu_policy */ gpgsm_sign, - NULL, /* trustlist */ gpgsm_verify, gpgsm_getauditlog, NULL, /* opassuan_transact */ diff --git a/src/engine-spawn.c b/src/engine-spawn.c index 296d7f2..0eeaeb1 100644 --- a/src/engine-spawn.c +++ b/src/engine-spawn.c @@ -466,7 +466,6 @@ struct engine_ops _gpgme_engine_ops_spawn = NULL, /* keysign */ NULL, /* tofu_policy */ NULL, /* sign */ - NULL, /* trustlist */ NULL, /* verify */ NULL, /* getauditlog */ NULL, /* opassuan_transact */ diff --git a/src/engine-uiserver.c b/src/engine-uiserver.c index cb8e155..c908ad7 100644 --- a/src/engine-uiserver.c +++ b/src/engine-uiserver.c @@ -1437,7 +1437,6 @@ struct engine_ops _gpgme_engine_ops_uiserver = NULL, /* keysign */ NULL, /* tofu_policy */ uiserver_sign, - NULL, /* trustlist */ uiserver_verify, NULL, /* getauditlog */ NULL, /* opassuan_transact */ diff --git a/src/engine.c b/src/engine.c index 05979c1..ded2f4d 100644 --- a/src/engine.c +++ b/src/engine.c @@ -917,13 +917,12 @@ _gpgme_engine_op_sign (engine_t engine, gpgme_data_t in, gpgme_data_t out, gpgme_error_t _gpgme_engine_op_trustlist (engine_t engine, const char *pattern) { + (void)pattern; + if (!engine) return gpg_error (GPG_ERR_INV_VALUE); - if (!engine->ops->trustlist) - return gpg_error (GPG_ERR_NOT_IMPLEMENTED); - - return (*engine->ops->trustlist) (engine->engine, pattern); + return gpg_error (GPG_ERR_NOT_IMPLEMENTED); } diff --git a/src/export.c b/src/export.c index abf260a..7e394df 100644 --- a/src/export.c +++ b/src/export.c @@ -123,6 +123,7 @@ export_start (gpgme_ctx_t ctx, int synchronous, const char *pattern, if ((mode & ~(GPGME_EXPORT_MODE_EXTERN |GPGME_EXPORT_MODE_MINIMAL |GPGME_EXPORT_MODE_SECRET + |GPGME_EXPORT_MODE_SSH |GPGME_EXPORT_MODE_RAW |GPGME_EXPORT_MODE_NOUID |GPGME_EXPORT_MODE_PKCS12))) @@ -218,6 +219,7 @@ export_ext_start (gpgme_ctx_t ctx, int synchronous, const char *pattern[], if ((mode & ~(GPGME_EXPORT_MODE_EXTERN |GPGME_EXPORT_MODE_MINIMAL |GPGME_EXPORT_MODE_SECRET + |GPGME_EXPORT_MODE_SSH |GPGME_EXPORT_MODE_RAW |GPGME_EXPORT_MODE_PKCS12))) return gpg_error (GPG_ERR_INV_VALUE); /* Invalid flags in MODE. */ @@ -478,4 +480,3 @@ gpgme_op_export_keys (gpgme_ctx_t ctx, return TRACE_ERR (err); } - diff --git a/src/gpgme-json.c b/src/gpgme-json.c index 7957659..bcaa1fc 100644 --- a/src/gpgme-json.c +++ b/src/gpgme-json.c @@ -2298,6 +2298,7 @@ static const char hlp_keylist[] = "sigs: Add KEYLIST_MODE_SIGS.\n" "notations: Add KEYLIST_MODE_SIG_NOTATIONS.\n" "tofu: Add KEYLIST_MODE_WITH_TOFU.\n" + "keygrip: Add KEYLIST_MODE_WITH_KEYGRIP.\n" "ephemeral: Add KEYLIST_MODE_EPHEMERAL.\n" "validate: Add KEYLIST_MODE_VALIDATE.\n" "locate: Add KEYLIST_MODE_LOCATE.\n" @@ -2463,6 +2464,11 @@ op_keylist (cjson_t request, cjson_t result) if (abool) mode |= GPGME_KEYLIST_MODE_WITH_TOFU; + if ((err = get_boolean_flag (request, "keygrip", 0, &abool))) + goto leave; + if (abool) + mode |= GPGME_KEYLIST_MODE_WITH_KEYGRIP; + if ((err = get_boolean_flag (request, "ephemeral", 0, &abool))) goto leave; if (abool) diff --git a/src/gpgme-tool.c b/src/gpgme-tool.c index 7a0bfcb..0dbc4a9 100644 --- a/src/gpgme-tool.c +++ b/src/gpgme-tool.c @@ -2149,7 +2149,7 @@ static const char hlp_include_certs[] = "\n" "With DEFAULT or N, set how many certificates should be\n" "included in the next S/MIME signed message. See the\n" - "GPGME documentation for details on the meaning of" + "GPGME documentation for details on the meaning of\n" "various N. Without either, return the current setting."; static gpg_error_t cmd_include_certs (assuan_context_t ctx, char *line) diff --git a/src/gpgme.c b/src/gpgme.c index 65a2e30..8bc11d5 100644 --- a/src/gpgme.c +++ b/src/gpgme.c @@ -533,6 +533,14 @@ gpgme_set_ctx_flag (gpgme_ctx_t ctx, const char *name, const char *value) if (!ctx->override_session_key) err = gpg_error_from_syserror (); } + else if (!strcmp (name, "include-key-block")) + { + ctx->include_key_block = abool; + } + else if (!strcmp (name, "auto-key-import")) + { + ctx->auto_key_import = abool; + } else if (!strcmp (name, "auto-key-retrieve")) { ctx->auto_key_retrieve = abool; @@ -566,6 +574,10 @@ gpgme_set_ctx_flag (gpgme_ctx_t ctx, const char *name, const char *value) if (!ctx->trust_model) err = gpg_error_from_syserror (); } + else if (!strcmp (name, "extended-edit")) + { + ctx->extended_edit = abool; + } else err = gpg_error (GPG_ERR_UNKNOWN_NAME); @@ -603,6 +615,14 @@ gpgme_get_ctx_flag (gpgme_ctx_t ctx, const char *name) { return ctx->override_session_key? ctx->override_session_key : ""; } + else if (!strcmp (name, "include-key-block")) + { + return ctx->include_key_block? "1":""; + } + else if (!strcmp (name, "auto-key-import")) + { + return ctx->auto_key_import? "1":""; + } else if (!strcmp (name, "auto-key-retrieve")) { return ctx->auto_key_retrieve? "1":""; @@ -623,6 +643,10 @@ gpgme_get_ctx_flag (gpgme_ctx_t ctx, const char *name) { return ctx->auto_key_locate? ctx->auto_key_locate : ""; } + else if (!strcmp (name, "extended-edit")) + { + return ctx->extended_edit ? "1":""; + } else return NULL; } diff --git a/src/gpgme.h.in b/src/gpgme.h.in index 722ce68..b4f817b 100644 --- a/src/gpgme.h.in +++ b/src/gpgme.h.in @@ -313,7 +313,7 @@ typedef enum gpgme_sig_mode_t; -/* The available validities for a trust item or key. */ +/* The available validities for a key. */ typedef enum { GPGME_VALIDITY_UNKNOWN = 0, @@ -379,6 +379,7 @@ gpgme_protocol_t; #define GPGME_KEYLIST_MODE_SIG_NOTATIONS 8 #define GPGME_KEYLIST_MODE_WITH_SECRET 16 #define GPGME_KEYLIST_MODE_WITH_TOFU 32 +#define GPGME_KEYLIST_MODE_WITH_KEYGRIP 64 #define GPGME_KEYLIST_MODE_EPHEMERAL 128 #define GPGME_KEYLIST_MODE_VALIDATE 256 @@ -406,6 +407,7 @@ gpgme_pinentry_mode_t; #define GPGME_EXPORT_MODE_RAW 32 #define GPGME_EXPORT_MODE_PKCS12 64 #define GPGME_EXPORT_MODE_NOUID 128 /* Experimental(!)*/ +#define GPGME_EXPORT_MODE_SSH 256 typedef unsigned int gpgme_export_mode_t; @@ -600,7 +602,7 @@ struct _gpgme_subkey /* The name of the curve for ECC algorithms or NULL. */ char *curve; - /* The keygrip of the subkey in hex digit form or NULL if not availabale. */ + /* The keygrip of the subkey in hex digit form or NULL if not available. */ char *keygrip; }; typedef struct _gpgme_subkey *gpgme_subkey_t; @@ -728,6 +730,9 @@ struct _gpgme_user_id /* Time of the last refresh of this user id. 0 if unknown. */ unsigned long last_update; + + /* The string to exactly identify a userid. Might be NULL. */ + char *uidhash; }; typedef struct _gpgme_user_id *gpgme_user_id_t; @@ -1050,7 +1055,7 @@ typedef enum GPGME_EVENT_START, GPGME_EVENT_DONE, GPGME_EVENT_NEXT_KEY, - GPGME_EVENT_NEXT_TRUSTITEM + GPGME_EVENT_NEXT_TRUSTITEM /* NOT USED. */ } gpgme_event_io_t; @@ -1998,63 +2003,32 @@ gpgme_error_t gpgme_op_passwd (gpgme_ctx_t ctx, gpgme_key_t key, /* - * Trust items and operations. + * Trust items and operations. DO NOT USE. + * Note: This does not work because the experimental support in the + * GnuPG engine has been removed a very long time; for API and ABI + * compatibilty we keep the functions but let them return an error. + * See https://dev.gnupg.org/T4834 */ - -/* An object to hold data of a trust item. - * This structure shall be considered read-only and an application - * must not allocate such a structure on its own. */ struct _gpgme_trust_item { - /* Internal to GPGME, do not use. */ unsigned int _refs; - - /* The key ID to which the trust item belongs. */ char *keyid; - - /* Internal to GPGME, do not use. */ char _keyid[16 + 1]; - - /* The type of the trust item, 1 refers to a key, 2 to a user ID. */ int type; - - /* The trust level. */ int level; - - /* The owner trust if TYPE is 1. */ char *owner_trust; - - /* Internal to GPGME, do not use. */ char _owner_trust[2]; - - /* The calculated validity. */ char *validity; - - /* Internal to GPGME, do not use. */ char _validity[2]; - - /* The user name if TYPE is 2. */ char *name; }; typedef struct _gpgme_trust_item *gpgme_trust_item_t; - -/* Start a trustlist operation within CTX, searching for trust items - which match PATTERN. */ gpgme_error_t gpgme_op_trustlist_start (gpgme_ctx_t ctx, const char *pattern, int max_level); - -/* Return the next trust item from the trustlist in R_ITEM. */ gpgme_error_t gpgme_op_trustlist_next (gpgme_ctx_t ctx, gpgme_trust_item_t *r_item); - -/* Terminate a pending trustlist operation within CTX. */ gpgme_error_t gpgme_op_trustlist_end (gpgme_ctx_t ctx); - -/* Acquire a reference to ITEM. */ void gpgme_trust_item_ref (gpgme_trust_item_t item); - -/* Release a reference to ITEM. If this was the last one the trust - * item is destroyed. */ void gpgme_trust_item_unref (gpgme_trust_item_t item); @@ -2736,22 +2710,16 @@ unsigned long gpgme_key_sig_get_ulong_attr (gpgme_key_t key, int uid_idx, gpgme_error_t gpgme_op_import_ext (gpgme_ctx_t ctx, gpgme_data_t keydata, int *nr) _GPGME_DEPRECATED(0,4); -/* Release the trust item ITEM. Deprecated, use - * gpgme_trust_item_unref. */ +/* DO NOT USE. */ void gpgme_trust_item_release (gpgme_trust_item_t item) _GPGME_DEPRECATED(0,4); -/* Return the value of the attribute WHAT of ITEM, which has to be - * representable by a string. Deprecated, use trust item structure - * directly. */ +/* DO NOT USE. */ const char *gpgme_trust_item_get_string_attr (gpgme_trust_item_t item, _gpgme_attr_t what, const void *reserved, int idx) _GPGME_DEPRECATED(0,4); -/* Return the value of the attribute WHAT of KEY, which has to be - * representable by an integer. IDX specifies a running index if the - * attribute appears more than once in the key. Deprecated, use trust - * item structure directly. */ +/* DO NOT USE. */ int gpgme_trust_item_get_int_attr (gpgme_trust_item_t item, _gpgme_attr_t what, const void *reserved, int idx) _GPGME_DEPRECATED(0,4); @@ -385,6 +385,7 @@ gpgme_key_unref (gpgme_key_t key) } free (uid->address); + free (uid->uidhash); free (uid); uid = next_uid; } diff --git a/src/keylist.c b/src/keylist.c index cdb115f..a4de3ad 100644 --- a/src/keylist.c +++ b/src/keylist.c @@ -621,8 +621,9 @@ keylist_colon_handler (void *priv, char *line) /* Only look at signature and trust info records immediately following a user ID. For this, clear the user ID pointer when - encountering anything but a signature or trust record. */ - if (rectype != RT_SIG && rectype != RT_REV && rectype != RT_TFS) + encountering anything but a signature, trust record or subpacket. */ + if (rectype != RT_SIG && rectype != RT_REV && rectype != RT_TFS && + rectype != RT_SPK) opd->tmp_uid = NULL; /* Only look at subpackets immediately following a signature. For @@ -830,6 +831,12 @@ keylist_colon_handler (void *priv, char *line) if (field[1]) set_userid_flags (key, field[1]); + if (field[7] && *field[7]) + { + gpgme_user_id_t uid = key->_last_uid; + assert (uid); + uid->uidhash = strdup (field[7]); + } opd->tmp_uid = key->_last_uid; if (fields >= 20) { diff --git a/src/posix-util.c b/src/posix-util.c index 5c4f339..cf066d6 100644 --- a/src/posix-util.c +++ b/src/posix-util.c @@ -79,27 +79,18 @@ _gpgme_set_override_inst_dir (const char *dir) return 0; } - -/* Find an executable program PGM along the envvar PATH. */ +/* Find an executable program in the colon seperated paths. */ static char * -walk_path (const char *pgm) +walk_path_str (const char *path_str, const char *pgm) { - const char *orig_path, *path, *s; + const char *path, *s; char *fname, *p; -#ifdef FIXED_SEARCH_PATH - orig_path = FIXED_SEARCH_PATH; -#else - orig_path = getenv ("PATH"); - if (!orig_path) - orig_path = "/bin:/usr/bin"; -#endif - - fname = malloc (strlen (orig_path) + 1 + strlen (pgm) + 1); + fname = malloc (strlen (path_str) + 1 + strlen (pgm) + 1); if (!fname) return NULL; - path = orig_path; + path = path_str; for (;;) { for (s=path, p=fname; *s && *s != ':'; s++, p++) @@ -114,14 +105,52 @@ walk_path (const char *pgm) path = s + 1; } - _gpgme_debug (NULL, DEBUG_ENGINE, -1, NULL, NULL, NULL, - "gpgme-walk_path: '%s' not found in '%s'", - pgm, orig_path); - free (fname); return NULL; } +/* Find an executable program PGM. */ +static char * +find_executable (const char *pgm) +{ + const char *orig_path; + char *ret; + +#ifdef FIXED_SEARCH_PATH + orig_path = FIXED_SEARCH_PATH; +#else + orig_path = getenv ("PATH"); + if (!orig_path) + orig_path = "/bin:/usr/bin"; +#endif + ret = walk_path_str (orig_path, pgm); + + if (!ret) + { + _gpgme_debug (NULL, DEBUG_ENGINE, -1, NULL, NULL, NULL, + "gpgme-walk_path: '%s' not found in '%s'", + pgm, orig_path); + } +#ifdef __APPLE__ + /* On apple, especially when started through gpgme-json via + the browser interface we should look into some additional + fallback paths. */ + const char *additional_path = "/usr/local/bin:/usr/local/MacGPG2/bin"; + if (!ret) + { + ret = walk_path_str (additional_path, pgm); + } + if (!ret) + { + _gpgme_debug (NULL, DEBUG_ENGINE, -1, NULL, NULL, NULL, + "gpgme-walk_path: '%s' not found in '%s'", + pgm, additional_path); + } +#endif + + return ret; +} + /* Return the full file name of the GPG binary. This function is used if gpgconf was not found and thus it can be assumed that gpg2 is @@ -130,7 +159,7 @@ walk_path (const char *pgm) char * _gpgme_get_gpg_path (void) { - return walk_path (default_gpg_name? default_gpg_name : "gpg"); + return find_executable (default_gpg_name? default_gpg_name : "gpg"); } @@ -139,7 +168,7 @@ _gpgme_get_gpg_path (void) char * _gpgme_get_gpgconf_path (void) { - return walk_path (default_gpgconf_name? default_gpgconf_name : "gpgconf"); + return find_executable (default_gpgconf_name? default_gpgconf_name : "gpgconf"); } /* See w32-util.c */ diff --git a/src/verify.c b/src/verify.c index 8aa9d28..81b2ff9 100644 --- a/src/verify.c +++ b/src/verify.c @@ -663,7 +663,7 @@ parse_trust (gpgme_signature_t sig, gpgme_status_code_t code, char *args) { while (*args == ' ') args++; - if (!strncmp (args, "chain", 2) && (args[2] == ' ' || !args[2])) + if (!strncmp (args, "chain", 5) && (args[5] == ' ' || !args[5])) sig->chain_model = 1; } } diff --git a/src/w32-io.c b/src/w32-io.c index c5c21f5..80978f9 100644 --- a/src/w32-io.c +++ b/src/w32-io.c @@ -1643,7 +1643,7 @@ _gpgme_io_select (struct io_select_fd_s *fds, size_t nfds, int nonblock) int i; int any; int count; - void *dbg_help; + void *dbg_help = NULL; TRACE_BEG (DEBUG_SYSIO, "_gpgme_io_select", fds, "nfds=%u, nonblock=%u", nfds, nonblock); diff --git a/src/w32-util.c b/src/w32-util.c index 8207676..2631ae7 100644 --- a/src/w32-util.c +++ b/src/w32-util.c @@ -308,10 +308,11 @@ _gpgme_w32_cancel_synchronous_io (HANDLE thread) if (func) { - if (!func (thread) && GetLastError() != ERROR_NOT_FOUND) + if (!func ((DWORD)thread) && GetLastError() != ERROR_NOT_FOUND) { TRACE (DEBUG_ENGINE, "gpgme:CancelSynchronousIo", NULL, - "called for thread %p: ec=%d", thread, GetLastError ()); + "called for thread %p: ec=%u", + thread, (unsigned int)GetLastError ()); } } else |