1. 16 Jul, 2020 4 commits
    • Werner Koch's avatar
      Release 1.14.0 · 6d7bf78c
      Werner Koch authored
      * configure.ac: Bump LT versions to c=C34/A23/R0 cpp=C17/A11/R0
      qt=C11/A4/R0.
      --
      GnuPG-bug-id: 4996
      6d7bf78c
    • Andre Heinecke's avatar
      qt, cpp: Support export modes · 690d9671
      Andre Heinecke authored
      * lang/cpp/context.cpp, lang/cpp/context.h
      (Context::startPublicKeyExport, Context::exportPublicKeys): Extend
      with flags paramenter.
      (Context::ExportMode): New.
      * lang/qt/src/exportjob.h (ExportJob::setExportMode): New.
      * lang/qt/src/qgpgmeexportjob.cpp, lang/qt/src/qgpgmeexportjob.h:
      Update accordingly.
      
      --
      This adds the C++ and Qt API for export modes.
      690d9671
    • Werner Koch's avatar
      core: Also allow GPGME_EXPORT_MODE_SSH for gpgme_op_export. · dfeedcc2
      Werner Koch authored
      
      
      * src/export.c (export_start): Allow that mode.
      --
      
      The test tools uses gpgme_op-export_ext and thus did not caught it.
      
      Signed-off-by: default avatarWerner Koch <wk@gnupg.org>
      dfeedcc2
    • Werner Koch's avatar
      core: New export mode to export as OpenSSH public key. · 7f9e0ca5
      Werner Koch authored
      
      
      * src/gpgme.h.in (GPGME_EXPORT_MODE_SSH): New.
      * src/export.c (export_ext_start): Allow for new mode.
      * src/engine-gpg.c (export_common): Implement.
      * tests/run-export.c (status_cb): New.
      (main): New options --status and --ssh.
      --
      
      GnuPG-bug-id: 4310
      Signed-off-by: default avatarWerner Koch <wk@gnupg.org>
      7f9e0ca5
  2. 15 Jul, 2020 2 commits
    • Werner Koch's avatar
      core: Deprecate the non-working trustlist functions. · 85890916
      Werner Koch authored
      
      
      * src/gpgme.h.in: Clarify that the trustlist function should not be
      used.
      * src/engine.c (_gpgme_engine_op_trustlist): Always return an error.
      * src/engine-backend.h (struct engine_ops): Remove trustlist member.
      * src/engine-gpg.c (gpg_trustlist): Remove.
      (struct engine_ops): Remove that member.  Also in all other engines.
      * tests/gpg/t-trustlist.c: Remove.
      * lang/python/tests/t-trustlist.py: Remove.
      --
      
      This never worked in reality because the required feature has been
      removed from GnuPG version 1.3.2 soon after introduction of this
      feature in gpgme - 17 years ago.  It was anyway marked as
      experimental.  We keep the API and ABI, though.
      
      GnuPG-bug-id: 4834
      Signed-off-by: default avatarWerner Koch <wk@gnupg.org>
      85890916
    • Werner Koch's avatar
      core: New keylist mode GPGME_KEYLIST_MODE_WITH_KEYGRIP. · c8048bf8
      Werner Koch authored
      
      
      * src/gpgme.h.in (GPGME_KEYLIST_MODE_WITH_KEYGRIP): New.
      * src/gpgme-json.c (op_keylist): New flag "keygrip".
      * src/engine-gpg.c (gpg_keylist_build_options): Pass the options.
      
      * lang/cpp/src/global.h (WithKeygrip): New.
      * lang/cpp/src/context.cpp: Add check.
      * lang/cpp/src/key.cpp (Key::update): Handle WithKeygrip.
      * lang/cpp/src/verificationresult.cpp: Ditto.
      * lang/cpp/src/util.h (add_to_gpgme_keylist_mode_t): Ditto.
      --
      
      GnuPG-bug-id: 4939
      Signed-off-by: default avatarWerner Koch <wk@gnupg.org>
      c8048bf8
  3. 14 Jul, 2020 1 commit
  4. 09 Jun, 2020 1 commit
    • Andre Heinecke's avatar
      doc: Explain verify_result_t.status == 0 more · 88f32025
      Andre Heinecke authored
      * doc/gpgme.texi (gpgme_verify_result_t): Explain
      GPGME_STATUS_NO_ERROR more clearly.
      
      --
      This might help to avoid misunderstandings how the
      status can be interpreted and explains why a verify
      of unsigned PGP Data returns no error.
      
      As a reaction to CVE-2020-10759 discovered by Justin Steven.
      88f32025
  5. 05 Jun, 2020 1 commit
    • Werner Koch's avatar
      core: Fix setting of the chain_model signature result. · 728ead8e
      Werner Koch authored
      * src/verify.c (parse_trust): Fix detection of "chain" keyword.
      --
      
      Fixes-commit: da6f3dc0
      
      
      from 2007 shortly after introducing this.  I doubt that this info has
      ever been used (it is for qualified signatures, which are only
      supported using the legacy German RegTP rules for them which were soon
      overturned by the commercial CAs).
      
      Signed-off-by: default avatarWerner Koch <wk@gnupg.org>
      728ead8e
  6. 11 May, 2020 1 commit
  7. 08 May, 2020 4 commits
    • Andre Heinecke's avatar
      w32: Explicitly link ws2_32 · 52f930c1
      Andre Heinecke authored
      * src/Makefile.am (gpgme_w32_extra_libs): New.
      (libgpgme_la_LIBADD, libgpgme_glib_la_LIBADD): Use it.
      
      --
      Since w32-io.c directly uses functions from ws2_32 it should
      not rely on libgpg-error to pull in this dependency.
      52f930c1
    • dupgit's avatar
      GPGME_CREATE_NOEXPIRE is only available since 1.9.0 · 49c13854
      dupgit authored
      
      
       * doc/gpgme.texi: Fixes version number from 1.8.0 to
         1.9.0 for GPGME_CREATE_NOEXPIRE.
      
      GnuPG-Bug-Id: T4922
      Signed-off-by: default avatardupgit <olivier.delhomme@free.fr>
      49c13854
    • Werner Koch's avatar
      core: Make sure the keygrip is available in WITH_SECRET mode. · 004fdf61
      Werner Koch authored
      * src/engine-gpg.c (gpg_keylist_build_options): Send --with-keygrip
      if --with-secret is used.
      --
      
      Since GnuPG 2.2.19 the keygrip was not anymore send if only
      --with-secret was used in a public key listing.  Given that
      --with-secret requires computation of the keygrip anyway, there is no
      point in not requesting the keyrip in this case.
      
      GnuPG-bug-id: 4820
      004fdf61
    • Andre Heinecke's avatar
      tests, json: Do not check for keygrip of pubkeys · 5c0d1c7f
      Andre Heinecke authored
      * tests/json/t-keylist-secret.out.json: Do not check for keygrip
      of bravo key.
      
      --
      Since GnuPG 2.2.19 the keygrip is not emitted for public keys
      in a keylisting --with-secret.
      
      As the GPGME test suite should pass with several versions
      the json test cannot test this as the suite does not allow
      version checks for different output.
      
      What the intended behavior is might still be up for discussion,
      always adding --with-keygip is not a good solution because
      it slows down keylistings for large keyrings.
      
      GnuPG-Bug-Id: T4820
      5c0d1c7f
  8. 27 Mar, 2020 2 commits
  9. 17 Mar, 2020 1 commit
    • Werner Koch's avatar
      core: New context flags "include-key-block" and "auto-key-import". · 3afa5346
      Werner Koch authored
      
      
      * src/gpgme.c (gpgme_set_ctx_flag): Add flags "include-key-block" and
      "auto-key-import".
      (gpgme_get_ctx_flag): Ditto.
      * src/context.h (struct gpgme_context): Add flags include_key_block
      and auto_key_import.
      * src/engine-gpg.c (struct engine_gpg): Likewise.
      (gpg_set_engine_flags): Set the flags for gpg versions >= 2.2.20.
      (gpg_decrypt): Set option according to the new flags.
      (gpg_encrypt): Ditto.
      (gpg_encrypt_sign): Ditto.
      (gpg_sign): Ditto.
      (gpg_verify): Ditto.
      
      tests/run-verify: Add option --auto-key-import.
      tests/run-sign: add option --include-key-block.
      --
      
      GnuPG-bug-id: 4856
      Signed-off-by: default avatarWerner Koch <wk@gnupg.org>
      3afa5346
  10. 03 Mar, 2020 1 commit
  11. 19 Feb, 2020 2 commits
    • Andre Heinecke's avatar
      qt: Change logging category · ec9690cf
      Andre Heinecke authored
      * lang/qt/src/*: Change logging category to macro to QGPGME_LOG.
      
      --
      The old logging category macro had a typo and this way we
      are more consistent with other logging rules. For example
      you could write gpg.* in the logging conf.
      ec9690cf
    • Andre Heinecke's avatar
      qt: Log execution args of gpg-card · ba08aadf
      Andre Heinecke authored
      * lang/qt/src/qgpgmegpgcardjob.cpp (do_work): Log call.
      ba08aadf
  12. 14 Feb, 2020 1 commit
  13. 12 Feb, 2020 2 commits
    • Andre Heinecke's avatar
      qt: Add dummy context to make mixin happy · 9ca679c1
      Andre Heinecke authored
      * lang/qt/qgpgmegpgcardjob.cpp (QGpgMEGpgCardJob): Add context.
      --
      Otherwise it fails with an assert.
      9ca679c1
    • Andre Heinecke's avatar
      qt: Add GpgCardJob following the job pattern · 77feaa45
      Andre Heinecke authored
      * lang/qt/src/Makefile.am: Add new files.
      * lang/qt/src/job.cpp (GpgCardJob): Add impl stuff.
      * lang/qt/src/protocol.h (gpgCardJob): Get one.
      * lang/qt/src/qgpgmebackend.cpp,
      lang/qt/src/qgpgmebackend.h: Add helpers to get the job.
      * lang/qt/src/qgpgmegpgcardjob.cpp,
      lang/qt/src/gpgcardjob.h,
      lang/qt/src/qgpgmegpgcardjob.h: New.
      
      --
      This is annoyingly complex to add a simple new job.
      In the future we should implement something like this
      without the threadedjobmixin stuff. But the idea was
      to follow the usual job pattern.
      
      GnuPG-Bug-Id: T4794
      77feaa45
  14. 29 Jan, 2020 1 commit
    • Andre Heinecke's avatar
      Do not test for a bug in older GnuPG versions · cff600f1
      Andre Heinecke authored
      * tests/json/t-keylist-secret.out.json
      
      --
      Since at least 2.2.19 GnuPG no longer emits secret = true
      for keys where it does not have a secret. To avoid
      failures with older versions we remove the check altogether.
      
      GnuPG-Bug-Id: T4820
      cff600f1
  15. 23 Jan, 2020 1 commit
  16. 17 Jan, 2020 1 commit
    • Andre Heinecke's avatar
      core: Add MacOS fallbacks to look for binaries · 39052913
      Andre Heinecke authored
      * src/posix-util.c (find_executable): New.
      (walk_path_str): Factored out from walk_path.
      (walk_path): Replaced by find_executable.
      (_gpgme_get_gpg_path, _gpgme_get_gpgconf_path): Use find_executable.
      
      --
      This should help to locate GnuPG on MacOS systems where
      it is not part of the PATH environment variable and
      should reduce the need to have fixed path known
      at GPGME compile time.
      
      mailvelope/issue699
      39052913
  17. 13 Dec, 2019 2 commits
    • Andre Heinecke's avatar
      cpp, qt: Use uidhash to select uids for signing · 194272db
      Andre Heinecke authored
      * lang/cpp/src/gpgsignkeyeditinteractor.cpp (action):
      Use uidhash instead of number.
      (GpgSignKeyEditInteractor::setKey): New.
      * lang/cpp/src/gpgsignkeyeditinteractor.h: Update accordingly.
      * lang/cpp/src/key.h, lang/cpp/src/key.cpp: Wrap uidhash.
      * lang/qt/src/qgpgmesignkeyjob.cpp: Set the key.
      
      --
      Using the uidhash avoids problems when the user ids
      on --edit-key are different ones then the uids
      captured by gpgme when listing keys. Or if
      they are in a different order. This can happen
      with cached keys or keys with user attributes.
      194272db
    • Werner Koch's avatar
      core: Extend gpgme_user_id_t with uidhash member. · 5eeae535
      Werner Koch authored
      
      
      * src/gpgme.h.in (struct _gpgme_user_id): Add field 'uidhash'.
      * src/key.c (gpgme_key_unref): Free it.
      * src/keylist.c (keylist_colon_handler): Set it.
      * tests/run-keylist.c (main): Print it.
      --
      
      The uidhash value is part of gpg's output since the year 2005.  This
      now adds support to gpgme.  The application for uidhash is to select
      a user id in an edit interactor: Instead of giving the number of the
      user id, the uidhash value can be be used to avoid tracking the user
      id numbers.
      
      Signed-off-by: default avatarWerner Koch <wk@gnupg.org>
      5eeae535
  18. 11 Dec, 2019 1 commit
  19. 06 Dec, 2019 1 commit
  20. 03 Dec, 2019 1 commit
  21. 27 Nov, 2019 1 commit
  22. 12 Nov, 2019 1 commit
    • Andre Heinecke's avatar
      doc: Remove UI Server documentation · 1b2ad3b7
      Andre Heinecke authored
      * doc/Makefile.am: Remove uiserver.texi
      * doc/gpgme.texi: Remove UI-Server mentions.
      * doc/uiserver.texi: Removed.
      
      --
      This prepares the removal of UI Server from implementing
      applications like Kleopatra.
      The only user of the UI Server is GpgEX and even that
      does not need it at all and is better served with process
      calls.
      
      GnuPG-Bug-Id: T4030
      1b2ad3b7
  23. 07 Nov, 2019 1 commit
  24. 06 Nov, 2019 4 commits
  25. 04 Nov, 2019 2 commits