diff options
author | JinWang An <jinwang.an@samsung.com> | 2021-12-01 16:54:37 +0900 |
---|---|---|
committer | JinWang An <jinwang.an@samsung.com> | 2021-12-01 16:54:37 +0900 |
commit | 398648eddb70bc844e1bc5996521e87dea3188e9 (patch) | |
tree | 1c186970f769d3d37d9ec3248a7145cdc12c0fd3 | |
parent | fd4d11c14daa6a54c81202dffc02cc419fa67568 (diff) | |
download | gpgme-398648eddb70bc844e1bc5996521e87dea3188e9.tar.gz gpgme-398648eddb70bc844e1bc5996521e87dea3188e9.tar.bz2 gpgme-398648eddb70bc844e1bc5996521e87dea3188e9.zip |
Imported Upstream version 1.11.1upstream/1.11.1
-rw-r--r-- | ChangeLog | 46 | ||||
-rw-r--r-- | Makefile.am | 59 | ||||
-rw-r--r-- | Makefile.in | 60 | ||||
-rw-r--r-- | NEWS | 17 | ||||
-rw-r--r-- | VERSION | 2 | ||||
-rwxr-xr-x | configure | 38 | ||||
-rw-r--r-- | configure.ac | 13 | ||||
-rw-r--r-- | doc/defsincdate | 2 | ||||
-rw-r--r-- | doc/gpgme.info | 246 | ||||
-rw-r--r-- | doc/gpgme.info-1 | 122 | ||||
-rw-r--r-- | doc/gpgme.info-2 | 77 | ||||
-rw-r--r-- | doc/gpgme.texi | 55 | ||||
-rw-r--r-- | gpgme.spec | 2 | ||||
-rw-r--r-- | lang/cl/gpgme.asd | 2 | ||||
-rw-r--r-- | lang/cpp/src/key.cpp | 49 | ||||
-rw-r--r-- | lang/cpp/src/key.h | 31 | ||||
-rw-r--r-- | src/Makefile.am | 2 | ||||
-rw-r--r-- | src/Makefile.in | 9 | ||||
-rw-r--r-- | src/decrypt.c | 1 | ||||
-rw-r--r-- | src/verify.c | 1 | ||||
-rw-r--r-- | tests/gpg/t-verify.c | 12 |
21 files changed, 604 insertions, 242 deletions
@@ -1,3 +1,49 @@ +2018-04-20 Werner Koch <wk@gnupg.org> + + Release 1.11.1. + + commit 2e9a14912fb906c17017553ccd0941d172e095ff + * configure.ac: Bump LT version to C31/A20/R1. For cpp to C13/A7/R0. + For qt to: C10/A3/R2. + + core: Remove another debug output leftover. + + commit f779362ffbc7b9334d98f9ee50bfe3c2dc177215 + * src/decrypt.c (_gpgme_decrypt_status_handler): Remove log debug. + + build: More release creation automation. + + commit d11bec5ef5e576dab52c1dc7d87758e4f9bf3583 + * Makefile.am: Add release and sign-release targets. + +2018-04-19 Werner Koch <wk@gnupg.org> + + json: Remove the -noinstall flag used during development. + + commit ab43d85b9a76fb5ba321f4c7280b4d72bfd67f59 + * src/Makefile.am (gpgme-json_LDFLAGS): Remove. + +2018-04-19 Andre Heinecke <aheinecke@intevation.de> + + cpp: Add origin and last_update to UserID. + + commit d65d6329319bff8cc555999fc92a20e151762a10 + * NEWS: Mention it. + * lang/cpp/src/key.cpp, lang/cpp/src/key.h (UserID::lastUpdate), + (UserID::origin): New. + (gpgme_origin_to_pp_origin): New helper. + + cpp: Add origin and last_update. + + commit 0adaf7bafd352f1c3a1e797493780150e3bb0adc + * NEWS: mention interface change. + * lang/cpp/src/key.cpp (Key::origin, Key::lastUpdate): New. + * lang/cpp/src/key.h (Key::Origin): New enum. + +2018-04-19 Werner Koch <wk@gnupg.org> + + core: Remove leftover debug output. + + commit b52a91f5a6818db6b3dd7ce86c01b5d5f6700d0d + * src/verify.c (_gpgme_verify_status_handler): Remove debug output. + + tests: Fix t-verify test for GnuPG < 2.2.7. + + commit 3d8e5c07511938a0b30b4626530822338abd9ec0 + * tests/gpg/t-verify.c (check_result): Tweak for gnupg < 2.2.7. + 2018-04-18 Werner Koch <wk@gnupg.org> Release 1.11.0. diff --git a/Makefile.am b/Makefile.am index e47ace5..2dc02e7 100644 --- a/Makefile.am +++ b/Makefile.am @@ -19,6 +19,16 @@ ## Process this file with automake to produce Makefile.in +# Location of the released tarball archives. Note that this is an +# internal archive and before uploading this to the public server, +# manual tests should be run and the git release tat set and pushed. +# Adjust as needed. +RELEASE_ARCHIVE_DIR = wk@vigenere:tarballs/gpgme/ + +# The key used to sign the released sources. Adjust as needed. +RELEASE_SIGNING_KEY = D8692123C4065DEA5E0F3AB5249B39D24F25E3B6 + +# Autoconf flags ACLOCAL_AMFLAGS = -I m4 DISTCHECK_CONFIGURE_FLAGS = @@ -57,9 +67,9 @@ distcheck-hook: esac;\ done ) | tee $(distdir).swdb +.PHONY: gen-ChangeLog release sign-release gen_start_date = 2011-12-01T00:00:00 -.PHONY: gen-ChangeLog gen-ChangeLog: if test -d $(top_srcdir)/.git; then \ (cd $(top_srcdir) && \ @@ -70,3 +80,50 @@ gen-ChangeLog: rm -f $(distdir)/ChangeLog; \ mv $(distdir)/cl-t $(distdir)/ChangeLog; \ fi + + +# Macro to help the release target. +RELEASE_NAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) + +release: + +(set -e;\ + if [ "$(abs_top_builddir)" = "$(abs_top_srcdir)" ]; then \ + echo "error: build directory must not be the source directory" >&2;\ + exit 2;\ + fi ;\ + echo "/* Build started at $$(date -uIseconds) */" ;\ + cd $(top_srcdir); \ + ./autogen.sh --force; \ + cd $(abs_top_builddir); \ + rm -rf dist; mkdir dist ; cd dist ; \ + $(abs_top_srcdir)/configure --enable-maintainer-mode; \ + $(MAKE) distcheck TESTFLAGS=--parallel; \ + echo "/* Build finished at $$(date -uIseconds) */" ;\ + echo "/*" ;\ + echo " * Please run the final step interactivly:" ;\ + echo " * make sign-release" ;\ + echo " */" ;\ + ) 2>&1 | tee "$(RELEASE_NAME).buildlog" + +sign-release: + +(set -e; \ + cd dist; \ + files1="$(RELEASE_NAME).tar.bz2" ;\ + files2="$(RELEASE_NAME).tar.bz2.sig \ + $(RELEASE_NAME).swdb \ + $(RELEASE_NAME).buildlog" ;\ + echo "/* Signing the source tarball ..." ;\ + gpg -sbu $(RELEASE_SIGNING_KEY) $(RELEASE_NAME).tar.bz2 ;\ + cat $(RELEASE_NAME).swdb >swdb.snippet;\ + echo >>swdb.snippet ;\ + sha1sum $${files1} >>swdb.snippet ;\ + cat "../$(RELEASE_NAME).buildlog" swdb.snippet \ + | gzip >$(RELEASE_NAME).buildlog ;\ + echo "Copying to local archive ..." ;\ + scp -p $${files1} $${files2} $(RELEASE_ARCHIVE_DIR)/ || true;\ + echo "Uploading documentation ..." ;\ + $(MAKE) -C doc online; \ + echo '/*' ;\ + echo ' * All done; for checksums see dist/swdb.snippet' ;\ + echo ' */' ;\ + ) diff --git a/Makefile.in b/Makefile.in index 15dfd86..7803997 100644 --- a/Makefile.in +++ b/Makefile.in @@ -425,6 +425,17 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ + +# Location of the released tarball archives. Note that this is an +# internal archive and before uploading this to the public server, +# manual tests should be run and the git release tat set and pushed. +# Adjust as needed. +RELEASE_ARCHIVE_DIR = wk@vigenere:tarballs/gpgme/ + +# The key used to sign the released sources. Adjust as needed. +RELEASE_SIGNING_KEY = D8692123C4065DEA5E0F3AB5249B39D24F25E3B6 + +# Autoconf flags ACLOCAL_AMFLAGS = -I m4 DISTCHECK_CONFIGURE_FLAGS = EXTRA_DIST = autogen.sh autogen.rc gpgme.spec.in \ @@ -434,6 +445,9 @@ EXTRA_DIST = autogen.sh autogen.rc gpgme.spec.in \ @RUN_GPG_TESTS_TRUE@tests = tests SUBDIRS = src ${tests} doc lang gen_start_date = 2011-12-01T00:00:00 + +# Macro to help the release target. +RELEASE_NAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION) all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive @@ -940,7 +954,8 @@ distcheck-hook: echo "$${pref}sha2 $$(sha256sum <$$i|cut -d' ' -f1)" ;;\ esac;\ done ) | tee $(distdir).swdb -.PHONY: gen-ChangeLog + +.PHONY: gen-ChangeLog release sign-release gen-ChangeLog: if test -d $(top_srcdir)/.git; then \ (cd $(top_srcdir) && \ @@ -952,6 +967,49 @@ gen-ChangeLog: mv $(distdir)/cl-t $(distdir)/ChangeLog; \ fi +release: + +(set -e;\ + if [ "$(abs_top_builddir)" = "$(abs_top_srcdir)" ]; then \ + echo "error: build directory must not be the source directory" >&2;\ + exit 2;\ + fi ;\ + echo "/* Build started at $$(date -uIseconds) */" ;\ + cd $(top_srcdir); \ + ./autogen.sh --force; \ + cd $(abs_top_builddir); \ + rm -rf dist; mkdir dist ; cd dist ; \ + $(abs_top_srcdir)/configure --enable-maintainer-mode; \ + $(MAKE) distcheck TESTFLAGS=--parallel; \ + echo "/* Build finished at $$(date -uIseconds) */" ;\ + echo "/*" ;\ + echo " * Please run the final step interactivly:" ;\ + echo " * make sign-release" ;\ + echo " */" ;\ + ) 2>&1 | tee "$(RELEASE_NAME).buildlog" + +sign-release: + +(set -e; \ + cd dist; \ + files1="$(RELEASE_NAME).tar.bz2" ;\ + files2="$(RELEASE_NAME).tar.bz2.sig \ + $(RELEASE_NAME).swdb \ + $(RELEASE_NAME).buildlog" ;\ + echo "/* Signing the source tarball ..." ;\ + gpg -sbu $(RELEASE_SIGNING_KEY) $(RELEASE_NAME).tar.bz2 ;\ + cat $(RELEASE_NAME).swdb >swdb.snippet;\ + echo >>swdb.snippet ;\ + sha1sum $${files1} >>swdb.snippet ;\ + cat "../$(RELEASE_NAME).buildlog" swdb.snippet \ + | gzip >$(RELEASE_NAME).buildlog ;\ + echo "Copying to local archive ..." ;\ + scp -p $${files1} $${files2} $(RELEASE_ARCHIVE_DIR)/ || true;\ + echo "Uploading documentation ..." ;\ + $(MAKE) -C doc online; \ + echo '/*' ;\ + echo ' * All done; for checksums see dist/swdb.snippet' ;\ + echo ' */' ;\ + ) + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: @@ -1,3 +1,20 @@ +Noteworthy changes in version 1.11.1 (2018-04-20) +------------------------------------------------- + + * Fixed build problems in the 1.11.0 release. + + * Added C++ interfaces which were planned for 1.11.0. + + * Interface changes relative to the 1.10.0 release: + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + cpp: Key::origin NEW. + cpp: Key::lastUpdate NEW. + cpp: UserID::origin NEW. + cpp: UserID::lastUpdate NEW. + + [c=C31/A20/R1 cpp=C13/A7/R0 qt=C10/A3/R2] + + Noteworthy changes in version 1.11.0 (2018-04-18) ------------------------------------------------- @@ -1 +1 @@ -1.11.0 +1.11.1 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for gpgme 1.11.0. +# Generated by GNU Autoconf 2.69 for gpgme 1.11.1. # # Report bugs to <http://bugs.gnupg.org>. # @@ -590,8 +590,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='gpgme' PACKAGE_TARNAME='gpgme' -PACKAGE_VERSION='1.11.0' -PACKAGE_STRING='gpgme 1.11.0' +PACKAGE_VERSION='1.11.1' +PACKAGE_STRING='gpgme 1.11.1' PACKAGE_BUGREPORT='http://bugs.gnupg.org' PACKAGE_URL='' @@ -1457,7 +1457,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures gpgme 1.11.0 to adapt to many kinds of systems. +\`configure' configures gpgme 1.11.1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1527,7 +1527,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of gpgme 1.11.0:";; + short | recursive ) echo "Configuration of gpgme 1.11.1:";; esac cat <<\_ACEOF @@ -1677,7 +1677,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -gpgme configure 1.11.0 +gpgme configure 1.11.1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2507,7 +2507,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by gpgme $as_me 1.11.0, which was +It was created by gpgme $as_me 1.11.1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2872,18 +2872,18 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu # LIBGPGME_LT_CURRENT=31 LIBGPGME_LT_AGE=20 -LIBGPGME_LT_REVISION=0 +LIBGPGME_LT_REVISION=1 # If there is an ABI break in gpgmepp or qgpgme also bump the # version in IMPORTED_LOCATION in the GpgmeppConfig-w32.cmake.in.in -LIBGPGMEPP_LT_CURRENT=12 -LIBGPGMEPP_LT_AGE=6 +LIBGPGMEPP_LT_CURRENT=13 +LIBGPGMEPP_LT_AGE=7 LIBGPGMEPP_LT_REVISION=0 LIBQGPGME_LT_CURRENT=10 LIBQGPGME_LT_AGE=3 -LIBQGPGME_LT_REVISION=1 +LIBQGPGME_LT_REVISION=2 # If the API is changed in an incompatible way: increment the next counter. GPGME_CONFIG_API_VERSION=1 @@ -2899,7 +2899,7 @@ VERSION=$PACKAGE_VERSION VERSION_MAJOR=1 VERSION_MINOR=11 -VERSION_MICRO=0 +VERSION_MICRO=1 ac_aux_dir= for ac_dir in build-aux "$srcdir"/build-aux; do @@ -3420,7 +3420,7 @@ fi # Define the identity of the package. PACKAGE='gpgme' - VERSION='1.11.0' + VERSION='1.11.1' cat >>confdefs.h <<_ACEOF @@ -6470,7 +6470,7 @@ cat >>confdefs.h <<_ACEOF #define VERSION "$VERSION" _ACEOF -VERSION_NUMBER=0x010b00 +VERSION_NUMBER=0x010b01 # We need to compile and run a program on the build machine. A @@ -20754,7 +20754,7 @@ ENABLED_LANGUAGES=$enabled_languages # # Provide information about the build. # -BUILD_REVISION="3f55c52" +BUILD_REVISION="2e9a149" cat >>confdefs.h <<_ACEOF @@ -20763,7 +20763,7 @@ _ACEOF BUILD_FILEVERSION=`echo "$PACKAGE_VERSION"|sed 's/\([0-9.]*\).*/\1./;s/\./,/g'` -BUILD_FILEVERSION="${BUILD_FILEVERSION}16213" +BUILD_FILEVERSION="${BUILD_FILEVERSION}11930" # Check whether --enable-build-timestamp was given. @@ -23006,7 +23006,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by gpgme $as_me 1.11.0, which was +This file was extended by gpgme $as_me 1.11.1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -23072,7 +23072,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -gpgme config.status 1.11.0 +gpgme config.status 1.11.1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -25384,7 +25384,7 @@ fi echo " GPGME v${VERSION} has been configured as follows: - Revision: 3f55c52 (16213) + Revision: 2e9a149 (11930) Platform: $host UI Server: $uiserver diff --git a/configure.ac b/configure.ac index a04b059..2a35404 100644 --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,6 @@ # configure.ac for GPGME # Copyright (C) 2000 Werner Koch (dd9jn) -# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, -# 2009, 2010, 2011, 2012, 2013, 2014, 2015 g10 Code GmbH +# Copyright (C) 2001-2018 g10 Code GmbH # # This file is part of GPGME. # @@ -29,7 +28,7 @@ min_automake_version="1.14" # for the LT versions. m4_define(mym4_version_major, [1]) m4_define(mym4_version_minor, [11]) -m4_define(mym4_version_micro, [0]) +m4_define(mym4_version_micro, [1]) # Below is m4 magic to extract and compute the revision number, the # decimalized short revision number, a beta version string, and a flag @@ -57,18 +56,18 @@ AC_INIT([gpgme],[mym4_full_version],[http://bugs.gnupg.org]) # LIBGPGME_LT_CURRENT=31 LIBGPGME_LT_AGE=20 -LIBGPGME_LT_REVISION=0 +LIBGPGME_LT_REVISION=1 # If there is an ABI break in gpgmepp or qgpgme also bump the # version in IMPORTED_LOCATION in the GpgmeppConfig-w32.cmake.in.in -LIBGPGMEPP_LT_CURRENT=12 -LIBGPGMEPP_LT_AGE=6 +LIBGPGMEPP_LT_CURRENT=13 +LIBGPGMEPP_LT_AGE=7 LIBGPGMEPP_LT_REVISION=0 LIBQGPGME_LT_CURRENT=10 LIBQGPGME_LT_AGE=3 -LIBQGPGME_LT_REVISION=1 +LIBQGPGME_LT_REVISION=2 # If the API is changed in an incompatible way: increment the next counter. GPGME_CONFIG_API_VERSION=1 diff --git a/doc/defsincdate b/doc/defsincdate index 6a1f09f..1012c60 100644 --- a/doc/defsincdate +++ b/doc/defsincdate @@ -1 +1 @@ -1512709151 +1524207413 diff --git a/doc/gpgme.info b/doc/gpgme.info index dfdad87..9dc709a 100644 --- a/doc/gpgme.info +++ b/doc/gpgme.info @@ -19,8 +19,8 @@ END-INFO-DIR-ENTRY This file documents the GPGME library. - This is Edition 1.10.1-beta188, last updated 8 December 2017, of ‘The -‘GnuPG Made Easy’ Reference Manual’, for Version 1.10.1-beta188. + This is Edition 1.11.1-beta7, last updated 20 April 2018, of ‘The +‘GnuPG Made Easy’ Reference Manual’, for Version 1.11.1-beta7. Copyright © 2002–2008, 2010, 2012–2017 g10 Code GmbH. @@ -37,130 +37,130 @@ Public License for more details. Indirect: -gpgme.info-1: 1689 -gpgme.info-2: 302743 +gpgme.info-1: 1683 +gpgme.info-2: 301966 Tag Table: (Indirect) -Node: Top1689 -Node: Introduction9299 -Node: Getting Started10089 -Node: Features11550 -Node: Overview12862 -Node: Preparation13971 -Node: Header14968 -Node: Building the Source15715 -Node: Largefile Support (LFS)17859 -Node: Using Automake23275 -Node: Using Libtool25828 -Node: Library Version Check26190 -Node: Signal Handling32250 -Node: Multi-Threading33520 -Ref: Multi-Threading-Footnote-134936 -Node: Protocols and Engines35359 -Node: Engine Version Check38110 -Node: Engine Information40633 -Node: Engine Configuration44493 -Node: OpenPGP45797 -Node: Cryptographic Message Syntax46137 -Node: Assuan46450 -Node: Algorithms46824 -Ref: Algorithms-Footnote-147303 -Node: Public Key Algorithms47431 -Node: Hash Algorithms50033 -Node: Error Handling51247 -Node: Error Values53121 -Node: Error Sources58324 -Node: Error Codes60764 -Node: Error Strings65557 -Node: Exchanging Data67364 -Node: Creating Data Buffers69249 -Node: Memory Based Data Buffers69765 -Node: File Based Data Buffers73198 -Node: Callback Based Data Buffers75400 -Node: Destroying Data Buffers79591 -Node: Manipulating Data Buffers81098 -Node: Data Buffer I/O Operations81590 -Node: Data Buffer Meta-Data83963 -Node: Data Buffer Convenience88482 -Node: Contexts90702 -Node: Creating Contexts91888 -Node: Destroying Contexts92735 -Node: Result Management93074 -Node: Context Attributes94655 -Node: Protocol Selection95692 -Node: Crypto Engine96724 -Node: Setting the Sender98613 -Node: ASCII Armor100126 -Node: Text Mode100755 -Node: Offline Mode101689 -Node: Pinentry Mode103187 -Node: Included Certificates105081 -Node: Key Listing Mode106527 -Node: Passphrase Callback110985 -Node: Progress Meter Callback114547 -Node: Status Message Callback116532 -Node: Locale122500 -Node: Key Management124078 -Node: Key objects125306 -Node: Listing Keys139530 -Node: Information About Keys148183 -Node: Manipulating Keys149491 -Node: Generating Keys150061 -Node: Signing Keys168383 -Node: Exporting Keys172016 -Node: Importing Keys178823 -Ref: Importing Keys-Footnote-1186226 -Node: Deleting Keys186354 -Node: Changing Passphrases188634 -Node: Changing TOFU Data189961 -Node: Advanced Key Editing192069 -Node: Trust Item Management194802 -Node: Listing Trust Items195838 -Node: Manipulating Trust Items198199 -Node: Crypto Operations198842 -Node: Decrypt200106 -Node: Verify206858 -Node: Decrypt and Verify219322 -Node: Sign222177 -Node: Selecting Signers222741 -Node: Creating a Signature224147 -Node: Signature Notation Data228917 -Node: Encrypt231202 -Node: Encrypting a Plaintext231558 -Node: Miscellaneous243791 -Node: Running other Programs244203 -Node: Using the Assuan protocol246366 -Node: Checking for updates249164 -Node: Run Control253981 -Node: Waiting For Completion254725 -Node: Using External Event Loops256843 -Node: I/O Callback Interface258815 -Node: Registering I/O Callbacks264055 -Node: I/O Callback Example266094 -Node: I/O Callback Example GTK+272719 -Node: I/O Callback Example GDK274508 -Node: I/O Callback Example Qt276150 -Node: Cancellation278438 -Node: UI Server Protocol280746 -Ref: UI Server Protocol-Footnote-1282181 -Node: UI Server Encrypt282300 -Node: UI Server Sign287658 -Node: UI Server Decrypt290011 -Node: UI Server Verify291666 -Node: UI Server Set Input Files295238 -Node: UI Server Sign/Encrypt Files296308 -Node: UI Server Verify/Decrypt Files298116 -Node: UI Server Import/Export Keys299992 -Node: UI Server Checksum Files302743 -Node: Miscellaneous UI Server Commands304961 -Ref: command SENDER306892 -Node: Debugging308594 -Node: Deprecated Functions310343 -Node: Library Copying335560 -Node: Copying363780 -Node: Concept Index401530 -Node: Function and Data Index416309 +Node: Top1683 +Node: Introduction9287 +Node: Getting Started10077 +Node: Features11538 +Node: Overview12850 +Node: Preparation13959 +Node: Header14956 +Node: Building the Source15703 +Node: Largefile Support (LFS)17847 +Node: Using Automake23263 +Node: Using Libtool25816 +Node: Library Version Check26178 +Node: Signal Handling32238 +Node: Multi-Threading33508 +Ref: Multi-Threading-Footnote-134924 +Node: Protocols and Engines35347 +Node: Engine Version Check38098 +Node: Engine Information40621 +Node: Engine Configuration44481 +Node: OpenPGP45785 +Node: Cryptographic Message Syntax46125 +Node: Assuan46438 +Node: Algorithms46812 +Ref: Algorithms-Footnote-147291 +Node: Public Key Algorithms47419 +Node: Hash Algorithms50021 +Node: Error Handling51235 +Node: Error Values53109 +Node: Error Sources58312 +Node: Error Codes60752 +Node: Error Strings65545 +Node: Exchanging Data67352 +Node: Creating Data Buffers69237 +Node: Memory Based Data Buffers69753 +Node: File Based Data Buffers73186 +Node: Callback Based Data Buffers75388 +Node: Destroying Data Buffers79579 +Node: Manipulating Data Buffers81086 +Node: Data Buffer I/O Operations81578 +Node: Data Buffer Meta-Data83951 +Node: Data Buffer Convenience88470 +Node: Contexts90690 +Node: Creating Contexts91876 +Node: Destroying Contexts92723 +Node: Result Management93062 +Node: Context Attributes94643 +Node: Protocol Selection95680 +Node: Crypto Engine96712 +Node: Setting the Sender98601 +Node: ASCII Armor100114 +Node: Text Mode100743 +Node: Offline Mode101677 +Node: Pinentry Mode103175 +Node: Included Certificates105069 +Node: Key Listing Mode106515 +Node: Passphrase Callback110973 +Node: Progress Meter Callback114535 +Node: Status Message Callback116520 +Node: Locale122488 +Node: Key Management124066 +Node: Key objects125294 +Node: Listing Keys139518 +Node: Information About Keys148171 +Node: Manipulating Keys149479 +Node: Generating Keys150049 +Node: Signing Keys168371 +Node: Exporting Keys172004 +Node: Importing Keys178811 +Ref: Importing Keys-Footnote-1186214 +Node: Deleting Keys186342 +Node: Changing Passphrases188622 +Node: Changing TOFU Data189949 +Node: Advanced Key Editing192057 +Node: Trust Item Management194790 +Node: Listing Trust Items195826 +Node: Manipulating Trust Items198187 +Node: Crypto Operations198830 +Node: Decrypt200094 +Node: Verify206846 +Node: Decrypt and Verify219310 +Node: Sign222165 +Node: Selecting Signers222729 +Node: Creating a Signature224135 +Node: Signature Notation Data228905 +Node: Encrypt231190 +Node: Encrypting a Plaintext231546 +Node: Miscellaneous245958 +Node: Running other Programs246370 +Node: Using the Assuan protocol248533 +Node: Checking for updates251331 +Node: Run Control256148 +Node: Waiting For Completion256892 +Node: Using External Event Loops259010 +Node: I/O Callback Interface260982 +Node: Registering I/O Callbacks266222 +Node: I/O Callback Example268261 +Node: I/O Callback Example GTK+274886 +Node: I/O Callback Example GDK276675 +Node: I/O Callback Example Qt278317 +Node: Cancellation280605 +Node: UI Server Protocol282913 +Ref: UI Server Protocol-Footnote-1284348 +Node: UI Server Encrypt284467 +Node: UI Server Sign289825 +Node: UI Server Decrypt292178 +Node: UI Server Verify293833 +Node: UI Server Set Input Files297405 +Node: UI Server Sign/Encrypt Files298475 +Node: UI Server Verify/Decrypt Files301966 +Node: UI Server Import/Export Keys303842 +Node: UI Server Checksum Files304904 +Node: Miscellaneous UI Server Commands307122 +Ref: command SENDER309053 +Node: Debugging310755 +Node: Deprecated Functions312504 +Node: Library Copying337721 +Node: Copying365941 +Node: Concept Index403691 +Node: Function and Data Index418470 End Tag Table diff --git a/doc/gpgme.info-1 b/doc/gpgme.info-1 index 888e180..af6d6b4 100644 --- a/doc/gpgme.info-1 +++ b/doc/gpgme.info-1 @@ -19,8 +19,8 @@ END-INFO-DIR-ENTRY This file documents the GPGME library. - This is Edition 1.10.1-beta188, last updated 8 December 2017, of ‘The -‘GnuPG Made Easy’ Reference Manual’, for Version 1.10.1-beta188. + This is Edition 1.11.1-beta7, last updated 20 April 2018, of ‘The +‘GnuPG Made Easy’ Reference Manual’, for Version 1.11.1-beta7. Copyright © 2002–2008, 2010, 2012–2017 g10 Code GmbH. @@ -41,9 +41,9 @@ File: gpgme.info, Node: Top, Next: Introduction, Up: (dir) Main Menu ********* -This is Edition 1.10.1-beta188, last updated 8 December 2017, of ‘The -‘GnuPG Made Easy’ Reference Manual’, for Version 1.10.1-beta188 of the -GPGME library. +This is Edition 1.11.1-beta7, last updated 20 April 2018, of ‘The ‘GnuPG +Made Easy’ Reference Manual’, for Version 1.11.1-beta7 of the GPGME +library. * Menu: @@ -5738,6 +5738,59 @@ File: gpgme.info, Node: Encrypting a Plaintext, Up: Encrypt This keyword disables all keyword detection up to the end of the string. All keywords are treated as verbatim arguments. + To create a RECPSTRING it is often useful to employ a strconcat + style function. For example this function creates a string to + encrypt to two keys: + + char * + xbuild_recpstring (const char *key1, const char *key2) + { + char *result = gpgrt_strconcat ("--\n", key1, "\n", key2, NULL); + if (!result) + { perror ("strconcat failed"); exit (2); } + return result; + } + + Note the use of the double dash here; unless you want to specify a + keyword, it is a good idea to avoid any possible trouble with key + specifications starting with a double dash. The used strconcat + function is available in Libgpg-error 1.28 and later; Libgpg-error + (aka Gpgrt) is a dependency of GPGME. The number of arguments to + ‘gpgrt_strconcat’ is limited to 47 but that should always be + sufficient. In case a larger and non-fixed number of keys are to + be supplied the following code can be used: + + char * + xbuild_long_recpstring (void) + { + gpgrt_stream_t memfp; + const char *s; + void *result; + + memfp = gpgrt_fopenmem (0, "w+b"); + if (!memfp) + { perror ("fopenmem failed"); exit (2); } + gpgrt_fputs ("--", memfp); + while ((s = get_next_keyspec ())) + { + gpgrt_fputc ('\n', memfp); + gpgrt_fputs (s, memfp); + } + gpgrt_fputc (0, memfp); + if (gpgrt_ferror (memfp)) + { perror ("writing to memstream failed"); exit (2); } + if (gpgrt_fclose_snatch (memfp, &result, NULL)) + { perror ("fclose_snatch failed"); exit (2); } + return result; + } + + In this example ‘get_next_keyspec’ is expected to return the next + key to be added to the string. Please take care: Encrypting to a + large number of recipients is often questionable due to security + reasons and also for the technicality that all keys are currently + passed on the command line to ‘gpg’ which has as a platform + specific length limitation. + -- Function: gpgme_error_t gpgme_op_encrypt_ext_start (gpgme_ctx_t CTX, gpgme_key_t RECP[], const char *RECPSTRING, gpgme_encrypt_flags_t FLAGS, gpgme_data_t PLAIN, @@ -7208,62 +7261,3 @@ commands. Afterwards, the actual operation is requested: is present, the server always returns ‘OK’ promptly, and completes the operation asynchronously. - -File: gpgme.info, Node: UI Server Verify/Decrypt Files, Next: UI Server Import/Export Keys, Prev: UI Server Sign/Encrypt Files, Up: UI Server Protocol - -A.7 UI Server: Decrypting and verifying files. -============================================== - -First, the input files need to be specified by one or more ‘FILE’ -commands. Afterwards, the actual operation is requested: - - -- Command: DECRYPT_FILES --nohup - -- Command: VERIFY_FILES --nohup - -- Command: DECRYPT_VERIFY_FILES --nohup - Request that the files specified by ‘FILE’ are decrypted and/or - verified. The command selects the default action. The UI server - may allow the user to change this default afterwards interactively, - and even abort the operation or complete it only on some of the - selected files and directories. - - What it means to decrypt or verify a file or directory is specific - to the preferences of the user, the functionality the UI server - provides, and the selected protocol. Typically, for decryption, a - new file is created for each input file under the original filename - minus a protocol specific extension (like ‘.gpg’) which contains - the original plaintext. For verification a status is displayed for - each signed input file, indicating if it is signed, and if yes, if - the signature is valid. For files that are signed and encrypted, - the ‘VERIFY’ command transiently decrypts the file to verify the - enclosed signature. For directories, the server may offer multiple - options to the user (for example ignore or process recursively). - - The option ‘--nohup’ is mandatory. It is currently unspecified - what should happen if ‘--nohup’ is not present. Because ‘--nohup’ - is present, the server always returns ‘OK’ promptly, and completes - the operation asynchronously. - - -File: gpgme.info, Node: UI Server Import/Export Keys, Next: UI Server Checksum Files, Prev: UI Server Verify/Decrypt Files, Up: UI Server Protocol - -A.8 UI Server: Managing certificates. -===================================== - -First, the input files need to be specified by one or more ‘FILE’ -commands. Afterwards, the actual operation is requested: - - -- Command: IMPORT_FILES --nohup - Request that the certificates contained in the files specified by - ‘FILE’ are imported into the local certificate databases. - - For directories, the server may offer multiple options to the user - (for example ignore or process recursively). - - The option ‘--nohup’ is mandatory. It is currently unspecified - what should happen if ‘--nohup’ is not present. Because ‘--nohup’ - is present, the server always returns ‘OK’ promptly, and completes - the operation asynchronously. - - FIXME: It may be nice to support an ‘EXPORT’ command as well, which -is enabled by the context menu of the background of a directory. - diff --git a/doc/gpgme.info-2 b/doc/gpgme.info-2 index 4888966..541764b 100644 --- a/doc/gpgme.info-2 +++ b/doc/gpgme.info-2 @@ -19,8 +19,8 @@ END-INFO-DIR-ENTRY This file documents the GPGME library. - This is Edition 1.10.1-beta188, last updated 8 December 2017, of ‘The -‘GnuPG Made Easy’ Reference Manual’, for Version 1.10.1-beta188. + This is Edition 1.11.1-beta7, last updated 20 April 2018, of ‘The +‘GnuPG Made Easy’ Reference Manual’, for Version 1.11.1-beta7. Copyright © 2002–2008, 2010, 2012–2017 g10 Code GmbH. @@ -36,6 +36,65 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. +File: gpgme.info, Node: UI Server Verify/Decrypt Files, Next: UI Server Import/Export Keys, Prev: UI Server Sign/Encrypt Files, Up: UI Server Protocol + +A.7 UI Server: Decrypting and verifying files. +============================================== + +First, the input files need to be specified by one or more ‘FILE’ +commands. Afterwards, the actual operation is requested: + + -- Command: DECRYPT_FILES --nohup + -- Command: VERIFY_FILES --nohup + -- Command: DECRYPT_VERIFY_FILES --nohup + Request that the files specified by ‘FILE’ are decrypted and/or + verified. The command selects the default action. The UI server + may allow the user to change this default afterwards interactively, + and even abort the operation or complete it only on some of the + selected files and directories. + + What it means to decrypt or verify a file or directory is specific + to the preferences of the user, the functionality the UI server + provides, and the selected protocol. Typically, for decryption, a + new file is created for each input file under the original filename + minus a protocol specific extension (like ‘.gpg’) which contains + the original plaintext. For verification a status is displayed for + each signed input file, indicating if it is signed, and if yes, if + the signature is valid. For files that are signed and encrypted, + the ‘VERIFY’ command transiently decrypts the file to verify the + enclosed signature. For directories, the server may offer multiple + options to the user (for example ignore or process recursively). + + The option ‘--nohup’ is mandatory. It is currently unspecified + what should happen if ‘--nohup’ is not present. Because ‘--nohup’ + is present, the server always returns ‘OK’ promptly, and completes + the operation asynchronously. + + +File: gpgme.info, Node: UI Server Import/Export Keys, Next: UI Server Checksum Files, Prev: UI Server Verify/Decrypt Files, Up: UI Server Protocol + +A.8 UI Server: Managing certificates. +===================================== + +First, the input files need to be specified by one or more ‘FILE’ +commands. Afterwards, the actual operation is requested: + + -- Command: IMPORT_FILES --nohup + Request that the certificates contained in the files specified by + ‘FILE’ are imported into the local certificate databases. + + For directories, the server may offer multiple options to the user + (for example ignore or process recursively). + + The option ‘--nohup’ is mandatory. It is currently unspecified + what should happen if ‘--nohup’ is not present. Because ‘--nohup’ + is present, the server always returns ‘OK’ promptly, and completes + the operation asynchronously. + + FIXME: It may be nice to support an ‘EXPORT’ command as well, which +is enabled by the context menu of the background of a directory. + + File: gpgme.info, Node: UI Server Checksum Files, Next: Miscellaneous UI Server Commands, Prev: UI Server Import/Export Keys, Up: UI Server Protocol A.9 UI Server: Create and verify checksums for files. @@ -2415,7 +2474,7 @@ Function and Data Index * gpgme_edit_cb_t: Deprecated Functions. (line 37) * gpgme_encrypt_result_t: Encrypting a Plaintext. - (line 188) + (line 241) * gpgme_engine_check_version: Engine Version Check. (line 67) * gpgme_engine_info_t: Engine Information. (line 6) @@ -2549,17 +2608,17 @@ Function and Data Index * gpgme_op_encrypt_ext: Encrypting a Plaintext. (line 131) * gpgme_op_encrypt_ext_start: Encrypting a Plaintext. - (line 171) + (line 224) * gpgme_op_encrypt_result: Encrypting a Plaintext. - (line 199) + (line 252) * gpgme_op_encrypt_sign: Encrypting a Plaintext. - (line 210) + (line 263) * gpgme_op_encrypt_sign_ext: Encrypting a Plaintext. - (line 235) + (line 288) * gpgme_op_encrypt_sign_ext_start: Encrypting a Plaintext. - (line 251) + (line 304) * gpgme_op_encrypt_sign_start: Encrypting a Plaintext. - (line 221) + (line 274) * gpgme_op_encrypt_start: Encrypting a Plaintext. (line 113) * gpgme_op_export: Exporting Keys. (line 46) diff --git a/doc/gpgme.texi b/doc/gpgme.texi index 20bfa23..c4a29d5 100644 --- a/doc/gpgme.texi +++ b/doc/gpgme.texi @@ -6226,7 +6226,62 @@ string. All keywords are treated as verbatim arguments. @end table +To create a @var{recpstring} it is often useful to employ a strconcat +style function. For example this function creates a string to encrypt +to two keys: +@example +char * +xbuild_recpstring (const char *key1, const char *key2) +@{ + char *result = gpgrt_strconcat ("--\n", key1, "\n", key2, NULL); + if (!result) + @{ perror ("strconcat failed"); exit (2); @} + return result; +@} +@end example + +Note the use of the double dash here; unless you want to specify a +keyword, it is a good idea to avoid any possible trouble with key +specifications starting with a double dash. The used strconcat +function is available in Libgpg-error 1.28 and later; Libgpg-error +(aka Gpgrt) is a dependency of GPGME. The number of arguments to +@code{gpgrt_strconcat} is limited to 47 but that should always be +sufficient. In case a larger and non-fixed number of keys are to be +supplied the following code can be used: + +@example +char * +xbuild_long_recpstring (void) +@{ + gpgrt_stream_t memfp; + const char *s; + void *result; + + memfp = gpgrt_fopenmem (0, "w+b"); + if (!memfp) + @{ perror ("fopenmem failed"); exit (2); @} + gpgrt_fputs ("--", memfp); + while ((s = get_next_keyspec ())) + @{ + gpgrt_fputc ('\n', memfp); + gpgrt_fputs (s, memfp); + @} + gpgrt_fputc (0, memfp); + if (gpgrt_ferror (memfp)) + @{ perror ("writing to memstream failed"); exit (2); @} + if (gpgrt_fclose_snatch (memfp, &result, NULL)) + @{ perror ("fclose_snatch failed"); exit (2); @} + return result; +@} +@end example + +In this example @code{get_next_keyspec} is expected to return the next +key to be added to the string. Please take care: Encrypting to a +large number of recipients is often questionable due to security +reasons and also for the technicality that all keys are currently +passed on the command line to @command{gpg} which has as a platform +specific length limitation. @end deftypefun @@ -1,7 +1,7 @@ # This is a template. The dist target uses it to create the real file. Summary: GPGME - GnuPG Made Easy Name: gpgme -Version: 1.11.0 +Version: 1.11.1 Release: 1 URL: https://gnupg.org/gpgme.html Source: ftp://ftp.gnupg.org/gcrypt/alpha/gpgme/%{name}-%{version}.tar.gz diff --git a/lang/cl/gpgme.asd b/lang/cl/gpgme.asd index a39b61a..9c5c719 100644 --- a/lang/cl/gpgme.asd +++ b/lang/cl/gpgme.asd @@ -27,7 +27,7 @@ (defsystem gpgme :description "GnuPG Made Easy." :author "g10 Code GmbH" - :version "1.11.0" + :version "1.11.1" :licence "GPL" :depends-on ("cffi" "gpg-error") :components ((:file "gpgme-package") diff --git a/lang/cpp/src/key.cpp b/lang/cpp/src/key.cpp index 0e86a19..034286f 100644 --- a/lang/cpp/src/key.cpp +++ b/lang/cpp/src/key.cpp @@ -967,6 +967,42 @@ Error UserID::revoke() return ret; } +static Key::Origin gpgme_origin_to_pp_origin (const unsigned int origin) +{ + switch (origin) { + case GPGME_KEYORG_KS: + return Key::OriginKS; + case GPGME_KEYORG_DANE: + return Key::OriginDane; + case GPGME_KEYORG_WKD: + return Key::OriginWKD; + case GPGME_KEYORG_URL: + return Key::OriginURL; + case GPGME_KEYORG_FILE: + return Key::OriginFile; + case GPGME_KEYORG_SELF: + return Key::OriginSelf; + case GPGME_KEYORG_OTHER: + return Key::OriginOther; + case GPGME_KEYORG_UNKNOWN: + default: + return Key::OriginUnknown; + } +} + +Key::Origin UserID::origin() const +{ + if (isNull()) { + return Key::OriginUnknown; + } + return gpgme_origin_to_pp_origin(uid->origin); +} + +time_t UserID::lastUpdate() const +{ + return static_cast<time_t>(uid ? uid->last_update : 0); +} + Error Key::addUid(const char *uid) { if (isNull()) { @@ -981,6 +1017,19 @@ Error Key::addUid(const char *uid) return ret; } +Key::Origin Key::origin() const +{ + if (isNull()) { + return OriginUnknown; + } + return gpgme_origin_to_pp_origin(key->origin); +} + +time_t Key::lastUpdate() const +{ + return static_cast<time_t>(key ? key->last_update : 0); +} + std::ostream &operator<<(std::ostream &os, const UserID &uid) { os << "GpgME::UserID("; diff --git a/lang/cpp/src/key.h b/lang/cpp/src/key.h index c3c711c..76a0d4f 100644 --- a/lang/cpp/src/key.h +++ b/lang/cpp/src/key.h @@ -178,6 +178,27 @@ public: */ static Key locate(const char *mbox); + /* @enum Origin + * @brief The Origin of the key. */ + enum Origin : unsigned int { + OriginUnknown = 0, + OriginKS = 1, + OriginDane = 3, + OriginWKD = 4, + OriginURL = 5, + OriginFile = 6, + OriginSelf = 7, + OriginOther = 31, + }; + /*! Get the origin of the key. + * + * @returns the Origin. */ + Origin origin() const; + + /*! Get the last update time. + * + * @returns the last update time. */ + time_t lastUpdate() const; private: gpgme_key_t impl() const { @@ -371,6 +392,16 @@ public: * * @returns an error on error.*/ Error revoke(); + + /*! Get the origin of the key. + * + * @returns the Origin. */ + Key::Origin origin() const; + + /*! Get the last update time. + * + * @returns the last update time. */ + time_t lastUpdate() const; private: shared_gpgme_key_t key; gpgme_user_id_t uid; diff --git a/src/Makefile.am b/src/Makefile.am index c2d4a84..0a196e0 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -104,8 +104,6 @@ gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@ gpgme_json_SOURCES = gpgme-json.c cJSON.c cJSON.h gpgme_json_LDADD = -lm libgpgme.la $(GPG_ERROR_LIBS) -# We use -no-install temporary during development. -gpgme_json_LDFLAGS = -no-install if HAVE_W32_SYSTEM diff --git a/src/Makefile.in b/src/Makefile.in index 5eac9e1..40fec0f 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -107,7 +107,7 @@ subdir = src DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ $(top_srcdir)/build-aux/mkinstalldirs \ $(srcdir)/versioninfo.rc.in $(srcdir)/gpgme.h.in \ - $(srcdir)/gpgme-config.in stpcpy.c setenv.c ttyname_r.c \ + $(srcdir)/gpgme-config.in ttyname_r.c setenv.c stpcpy.c \ $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/ax_cxx_compile_stdcxx.m4 \ @@ -235,9 +235,6 @@ 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) -gpgme_json_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ - $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ - $(gpgme_json_LDFLAGS) $(LDFLAGS) -o $@ am_gpgme_tool_OBJECTS = gpgme-tool.$(OBJEXT) argparse.$(OBJEXT) gpgme_tool_OBJECTS = $(am_gpgme_tool_OBJECTS) gpgme_tool_DEPENDENCIES = libgpgme.la @@ -565,8 +562,6 @@ gpgme_tool_SOURCES = gpgme-tool.c argparse.c argparse.h gpgme_tool_LDADD = libgpgme.la @LIBASSUAN_LIBS@ gpgme_json_SOURCES = gpgme-json.c cJSON.c cJSON.h gpgme_json_LDADD = -lm libgpgme.la $(GPG_ERROR_LIBS) -# We use -no-install temporary during development. -gpgme_json_LDFLAGS = -no-install @HAVE_W32_SYSTEM_TRUE@RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) @HAVE_W32_SYSTEM_TRUE@LTRCCOMPILE = $(LIBTOOL) --mode=compile --tag=RC $(RCCOMPILE) @HAVE_W32_SYSTEM_TRUE@SUFFIXES = .rc .lo @@ -781,7 +776,7 @@ clean-libexecPROGRAMS: gpgme-json$(EXEEXT): $(gpgme_json_OBJECTS) $(gpgme_json_DEPENDENCIES) $(EXTRA_gpgme_json_DEPENDENCIES) @rm -f gpgme-json$(EXEEXT) - $(AM_V_CCLD)$(gpgme_json_LINK) $(gpgme_json_OBJECTS) $(gpgme_json_LDADD) $(LIBS) + $(AM_V_CCLD)$(LINK) $(gpgme_json_OBJECTS) $(gpgme_json_LDADD) $(LIBS) gpgme-tool$(EXEEXT): $(gpgme_tool_OBJECTS) $(gpgme_tool_DEPENDENCIES) $(EXTRA_gpgme_tool_DEPENDENCIES) @rm -f gpgme-tool$(EXEEXT) diff --git a/src/decrypt.c b/src/decrypt.c index 155e18e..0fc7019 100644 --- a/src/decrypt.c +++ b/src/decrypt.c @@ -414,7 +414,6 @@ _gpgme_decrypt_status_handler (void *priv, gpgme_status_code_t code, err = _gpgme_parse_plaintext (args, &opd->result.file_name, &mime); if (err) return err; - gpgrt_log_debug ("decrypt.c setting mime to %d\n", mime); opd->result.is_mime = !!mime; } break; diff --git a/src/verify.c b/src/verify.c index bd437c9..26b205a 100644 --- a/src/verify.c +++ b/src/verify.c @@ -1096,7 +1096,6 @@ _gpgme_verify_status_handler (void *priv, gpgme_status_code_t code, char *args) err = _gpgme_parse_plaintext (args, &opd->result.file_name, &mime); if (err) return err; - gpgrt_log_debug ("verify.c: setting mime to %d\n", mime); opd->result.is_mime = !!mime; } break; diff --git a/tests/gpg/t-verify.c b/tests/gpg/t-verify.c index 7c23406..fa0164a 100644 --- a/tests/gpg/t-verify.c +++ b/tests/gpg/t-verify.c @@ -126,9 +126,15 @@ check_result (gpgme_verify_result_t result, int no_of_sigs, int skip_sigs, } if (strcmp (sig->fpr, fpr)) { - fprintf (stderr, "%s:%i:sig-%d: Unexpected fingerprint: %s\n", - PGM, __LINE__, skip_sigs, sig->fpr); - exit (1); + if (strlen (sig->fpr) == 16 && strlen (fpr) == 40 + && !strncmp (sig->fpr, fpr + 24, 16)) + ; /* okay because gnupg < 2.2.6 only shows the keyid. */ + else + { + fprintf (stderr, "%s:%i:sig-%d: Unexpected fingerprint: %s\n", + PGM, __LINE__, skip_sigs, sig->fpr); + exit (1); + } } if (gpgme_err_code (sig->status) != status) { |