summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* build: Sync to libtool from libgpg-error for 64-bit Windows.HEADmasterNIIBE Yutaka2023-05-161-0/+13
| | | | | | | | | * build-aux/ltmain.hs: Update from libgpg-error. -- GnuPG-bug-id: 6484 Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
* doc: Fix Python example code.NIIBE Yutaka2023-04-264-15/+24
| | | | | | | | | | | | | | | | * lang/python/doc/src/gpgme-python-howto.org: Fix chmod race. * lang/python/examples/howto/export-secret-key.py: Likewise. * lang/python/examples/howto/export-secret-keys.py: Likewise. * lang/python/examples/howto/temp-homedir-config.py: Likewise. -- It's not for Python 2.7. GnuPG-bug-id: 6466 Reported-by: Hanno Böck Co-authored-by: Ingo Klöcker Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
* Post release updatesWerner Koch2023-04-202-1/+5
| | | | --
* Release 1.20.0gpgme-1.20.0Werner Koch2023-04-202-12/+22
|
* core: Support the new macOS Homebrew location.Werner Koch2023-04-201-1/+2
| | | | | | | * src/posix-util.c (find_executable): Extend the path. -- GnuPG-bug-id: 6440
* build,qt: Simplify check for mocIngo Klöcker2023-04-191-24/+3
| | | | | | m4/qt6.m4: Remove alternative checks for moc that were taken over from Qt 5 and that are obsolete for Qt 6. --
* Update NEWSIngo Klöcker2023-04-191-1/+5
| | | | | | | * NEWS: Add news for recent changes -- GnuPG-bug-id: 5960, 6456
* cpp: Fix Key::canSign()Ingo Klöcker2023-04-182-17/+4
| | | | | | | | | | | | | | | | * lang/cpp/src/key.h (canReallySign): Deprecate. * lang/cpp/src/key.cpp (canSign): Remove workaround. Use implementation of canReallySign. (canReallySign): Use canSign(). (operator<<): Use canSign(). -- The workaround in canSign was added 19 years ago and canReallySign, the workaround for the workaround, was added 13 years ago. Time to get rid of those workarounds for a bug in gpgme which has been fixed long ago and which cause bugs for any unsuspecting user of Key::canSign(). GnuPG-bug-id: 6456
* core: Avoid printf format warnings due to gpgme_ssize_t.Werner Koch2023-04-171-1/+1
| | | | * src/debug.h (_trace_sysres_ssize_t): Cast arg.
* core,w32: Fix invocation of gpgtarWerner Koch2023-04-172-13/+32
| | | | | | | * src/dirinfo.c (EXEEXT_S): New. (get_gpgconf_item): Append ".exe" to gpg-wks-client and gpgtar. * src/gpgme-w32spawn.c (mystderr): Add code to ease debugging.
* build: Update gpg-error.m4.NIIBE Yutaka2023-04-061-7/+5
| | | | | | | | * m4/gpg-error.m4: Update from libgpg-error master. -- Signed-off-by: NIIBE Yutaka <gniibe@fsij.org>
* w32: Always use UTF-8 for localized textsIngo Klöcker2023-04-043-0/+9
| | | | | | | | | | | | | | * configure.ac: Define GPG_ERR_ENABLE_GETTEXT_MACROS. * src/version.c (do_subsystem_inits) [W32]: Switch gettext to UTF-8. -- On Windows, applications using GpgME can now rely on localized texts returned by GpgME, e.g. the texts for error codes, to be UTF-8 encoded. In particular, this saves a useless and possibly lossy conversion to native encoding and back to UTF-8. On other OSes, where we use the system provided gettext, we assume that UTF-8 is used nowadays. GnuPG-bug-id: 5960
* core: Minor code cleanup.Werner Koch2023-03-271-50/+25
| | | | | | | | * src/engine-gpg.c (build_argv): Remove superfluous tes. -- gpg_error_from_syserror is guaranteed not to return 0 even if errno is not set.
* core: Initialize error variableIngo Klöcker2023-03-271-1/+1
| | | | | | | * src/engine-gpg.c (build_argv): Initialize err. -- Fixes-commit: fbce7deb3b68af900f692591d5d05fa5c1a83f5f
* core,cpp: Add new key flags to gpgme_subkey_tWerner Koch2023-03-216-4/+58
| | | | | | | | | | | | | | | | | * src/gpgme.h.in (struct _gpgme_subkey): Add bit flags can_renc, can_timestamp, adn is_group_owned. Reduce size of _unused. * src/keylist.c (set_subkey_capability): Set them. * tests/run-keylist.c (main): Print them. * lang/cpp/src/key.h (Subkey::canRenc): New. (Subkey::canTimestamp): New. (Subkey::isGroupOwned): New. * lang/cpp/src/key.cpp: Implement new methods. (Subkey::isQualified): Print them. (std::ostream &operator<<): Print them. -- GnuPG-bug-id: 6395
* Post release updatesWerner Koch2023-03-172-1/+8
| | | | --
* Release 1.19.0gpgme-1.19.0Werner Koch2023-03-172-7/+9
|
* python: Update python.m4 configure script.Ben Greiner (bnavigator)2023-03-172-91/+198
| | | | | | | | | | * configure.ac: Unset PYTHON_LIBS. Support python 3.10. * m4/python.m4: Find correct version string for python >= 3.10. -- See-also: https://dev.gnupg.org/D546 Also test for 3.11 and 3.12 (wk).
* tests: Package the ownertrust fileIngo Klöcker2023-03-171-1/+1
| | | | | | | | | tests/gpg/Makefile.am (EXTRA_DIST): Add ownertrust.txt. -- This fixes `make distcheck`. GnuPG-bug-id: 6342
* build: Update autogen.sh from libgpg-errorWerner Koch2023-03-151-23/+20
| | | | | | | -- This fixes hopefully issues with the beta numbering. Also removes the Windows-CE support
* core: Also detect legacy X.509 v0 certificates.Werner Koch2023-03-081-19/+31
| | | | | * src/data-identify.c (basic_detection): Loose the detection of X.509 certs.
* tests: Add option --binary to run-verifyWerner Koch2023-03-081-0/+8
| | | | | | | | | | * tests/run-verify.c (main): Set encoding. -- gpgsm usually used autodetection of the input format. But sometimes it is required to tell gpgsm that the input is binary encoded. In particular, this allows to strip trailing zeroes from a detached signature.
* qt: Add signals for file-based and data-based progressIngo Klöcker2023-02-149-0/+101
| | | | | | | | | | | | | | | | | | | | | * lang/qt/src/decryptverifyarchivejob.h (DecryptVerifyArchiveJob): Add signals fileProgress and dataProgress. * lang/qt/src/encryptarchivejob.h (EncryptArchiveJob): Ditto. * lang/qt/src/signarchivejob.h (SignArchiveJob): Ditto. * lang/qt/src/signencryptarchivejob.h (SignEncryptArchiveJob): Ditto. * lang/qt/src/job_p.h (emitArchiveProgressSignals): New. * lang/qt/src/qgpgmedecryptverifyarchivejob.cpp (QGpgMEDecryptVerifyArchiveJob::QGpgMEDecryptVerifyArchiveJob): Emit appropriate signal when receiving Job::rawProgress signal. * lang/qt/src/qgpgmeencryptarchivejob.cpp (QGpgMEEncryptArchiveJob::QGpgMEEncryptArchiveJob): Ditto. * lang/qt/src/qgpgmesignarchivejob.cpp (QGpgMESignArchiveJob::QGpgMESignArchiveJob): Ditto. * lang/qt/src/qgpgmesignencryptarchivejob.cpp (QGpgMESignEncryptArchiveJob::QGpgMESignEncryptArchiveJob): Ditto. -- GnuPG-bug-id: 6342
* qt: Remove commented out codeIngo Klöcker2023-02-141-12/+0
| | | | | | -- GnuPG-bug-id: 6342
* qt: Add simple and extended progress signals replacing old signalIngo Klöcker2023-02-146-18/+80
| | | | | | | | | | | | | | | | | | | | | | | | | * lang/qt/src/job.h (Job): Add signals jobProgress and rawProgress. Deprecate signal progress. * lang/qt/src/multideletejob.cpp (MultiDeleteJob::slotResult): Emit new progress signals. * lang/qt/src/qgpgmerefreshsmimekeysjob.cpp (QGpgMERefreshSMIMEKeysJob::slotStatus): Ditto. * lang/qt/src/threadedjobmixin.h (ThreadedJobMixin::showProgress): Use modern overload of QMetaObject::invokeMethod to forward the progress signal and add the value of what. Add forwarding of progress to the new signals. * lang/qt/tests/t-encrypt.cpp (EncryptionTest::testProgress): Test the new signals instead of the deprecated one. -- The new signal jobProgress omits the what value which is useless for most consumers. The new signal rawProgress makes all information provided by the backend available to consumers. The latter is not really meant to be used by users of gpgme. It will be used by the archive jobs to provide more user-friendly signals. GnuPG-bug-id: 6342
* core: Switch to logging via gpgrtWerner Koch2023-02-103-96/+109
| | | | | | | | | | | | * src/debug.c (errfp): Remove. (debug_init): Factor some code out to ... (safe_to_use_debug_file): new. (tid_log_callback): New. (debug_init): Rewrite to make use of gpgrt logging. (_gpgme_debug): Ditto. (_gpgme_debug_end): Remove extra LF testing code. * src/dirinfo.c (get_gpgconf_item): Remove now unneeded LFs. Realign output.
* core: Update copyright noticesWerner Koch2023-02-103-4/+4
| | | | --
* tests: Fix cleaning up at the end of the testIngo Klöcker2023-02-101-0/+2
| | | | | | | * tests/gpg/t-import.c (main): Unref key and release context. -- This fixes leaks found with -fsanitize=address.
* core: Allow finalization of signature verification of unencrypted dataIngo Klöcker2023-02-102-3/+38
| | | | | | | | | | | | | | | | * src/decrypt-verify.c (decrypt_verify_status_handler): Call _gpgme_verify_status_handler on EOF even if _gpgme_decrypt_status_handler returned NO DATA error. * tests/gpg/t-decrypt-verify.c (normal_signed_message): New. (main): Add test with signed, but not encrypted data. -- This allows the verify status handler to finalize the verification of the last signature even if the decrypt status handler returned a NO DATA error because the input data wasn't encrypted. GnuPG-bug-id: 6368
* cpp: Improve debug output of some enumsIngo Klöcker2023-02-091-19/+32
| | | | | | | | | * lang/cpp/src/verificationresult.cpp (operator<<): Fix output of Signature::PKAStatus which doesn't represent flags. Print corresponding name of enum value if Signature::Summary or Notation::Flags are 0. -- GnuPG-bug-id: 6368
* tests: Stop daemons after setting up test environmentIngo Klöcker2023-02-094-0/+4
| | | | | | | | | | * lang/python/tests/Makefile.am, lang/qt/tests/Makefile.am, tests/gpg/Makefile.am, tests/json/Makefile.am (pubring-stamp): Call `gpgconf --kill all` after importing test keys. -- This ensures that no gpg-agents or other daemons are running after "make".
* tests: Extend tests with an ultimately trusted keyIngo Klöcker2023-02-087-42/+56
| | | | | | | | | | | | | | | | | | | | * tests/gpg/Makefile.am (gpg-sample.stamp, pubring-stamp): Unify usage of tabs. (pubring-stamp): Import owner trust values. * tests/gpg/ownertrust.txt: New. * tests/gpg/t-decrypt-verify.c, tests/gpg/t-verify.c: Update expected values for signature summary and validity. * tests/gpg/t-keylist-secret-sig.c, tests/gpg/t-keylist-sig.c, tests/gpg/t-keylist.c: Update expected values of owner trust and uid validity. -- This change marks the "Alpha Test" test key as ultimately trusted which makes it possible to check for correct values derived from this, i.e. key owner trust, user id validity, signature summary and signature validity. GnuPG-bug-id: 6342
* tests: Make t-edit-sign idempotentIngo Klöcker2023-02-081-3/+56
| | | | | | | | | | | | | | | * tests/gpg/t-edit-sign.c (test_key, test_key_fpr, import_key, delete_key): New. (main): Remove key_fpr. Import test key to sign. Delete test key after test. -- Using a dedicated test key for testing key signing, which is imported before the test and deleted after the test, makes sure that the keys in the test key ring don't change. This is important for stable results of the key listing tests. GnuPG-bug-id: 6342
* doc: Add new flagsIngo Klöcker2023-02-021-0/+2
| | | | | | -- GnuPG-bug-id: 6342
* qt,tests: Add test for the previous commitIngo Klöcker2023-02-022-0/+135
| | | | | | | | * lang/qt/tests/t-decryptverify.cpp: New. * lang/qt/tests/Makefile.am: Add new test. -- GnuPG-bug-id: 6342
* cpp: Return successful verification for signed but not encrypted dataIngo Klöcker2023-02-021-7/+15
| | | | | | | | | | | | | | | | | | | | * lang/cpp/src/context.cpp (Context::decrypt): Use decryptionResult(). (Context::verifyDetachedSignature, Context::verifyOpaqueSignature): Use verificationResult(). (Context::verificationResult): Ignore "no data" error for signed but not encrypted data. (Context::decryptAndVerify): Use decryptionResult() and verificationResult(). -- gpgme's decrypt operations set the error to GPG_ERR_NO_DATA if no encrypted data was found. It makes sense to use this error for the encryption result, but it doesn't make sense to use it also for the verfication result if signed data was found. This way using the combined decrypt-verify operations on data that may be encrypted and/or signed doesn't produce confusing results. GnuPG-bug-id: 6342
* qt: Add job for extracting encrypted and signed archivesIngo Klöcker2023-02-0211-1/+566
| | | | | | | | | | | | | | | | | | | * lang/qt/src/decryptverifyarchivejob.cpp, lang/qt/src/decryptverifyarchivejob.h, lang/qt/src/decryptverifyarchivejob_p.h, lang/qt/src/qgpgmedecryptverifyarchivejob.cpp, lang/qt/src/qgpgmedecryptverifyarchivejob.h: New. * lang/qt/src/protocol.h (class Protocol): Add pure virtual member function decryptVerifyArchiveJob * lang/qt/src/protocol_p.h (Protocol::decryptVerifyArchiveJob): ... and implement it. * lang/qt/src/Makefile.am: Update accordingly. * lang/qt/tests/run-decryptverifyarchivejob.cpp: New. * lang/qt/tests/Makefile.am: Add new test runner. -- GnuPG-bug-id: 6342
* core: Make usage of input size hint compatible with gpgtarIngo Klöcker2023-02-021-13/+8
| | | | | | | | * src/engine-gpg.c (add_input_size_hint): Use add_gpg_arg_with_value to add the --input-size-hint option. -- GnuPG-bug-id: 6342
* cpp: Update decryption flagsIngo Klöcker2023-02-022-0/+2
| | | | | | | | | * lang/cpp/src/context.h (DecryptArchive): New flag. -- This flag corresponds to the GPGME_DECRYPT_ARCHIVE flag in gpgme. GnuPG-bug-id: 6342
* qt: Allow checking if the sign/encrypt archive jobs are supportedIngo Klöcker2023-02-028-0/+44
| | | | | | | | | | | | | | | | * lang/qt/src/encryptarchivejob.cpp, lang/qt/src/encryptarchivejob.h (isSupported): New. * lang/qt/src/signarchivejob.cpp, lang/qt/src/signarchivejob.h (isSupported): New. * lang/qt/src/signencryptarchivejob.cpp, lang/qt/src/signencryptarchivejob.h (isSupported): New. * lang/qt/tests/run-encryptarchivejob.cpp (main), lang/qt/tests/run-signarchivejob.cpp (main): Check if jobs are supported. -- GnuPG-bug-id: 6342
* cpp: Add const-overloads of version comparison operatorsIngo Klöcker2023-02-021-0/+70
| | | | | | | | | | * lang/cpp/src/engineinfo.h (EngineInfo::Version): Add const-overloads of all comparison operators. -- We keep the non-const overloads for binary compatibility. GnuPG-bug-id: 6342
* core: Allow usage of gpgtar also for new enough gpg 2.2Ingo Klöcker2023-02-021-19/+23
| | | | | | | | | | | | | | * src/engine-gpg.c (have_usable_gpgtar): New. (start): Always pass --status-fd to the called process. (gpg_decrypt, gpg_encrypt, gpg_encrypt_sign, gpg_sign, gpg_verify): Use have_usable_gpgtar() to check for suitable gpg. -- The version check in start() is not needed because versions of gpg that are unsuitable for the usage of gpgtar are rejected already by the callers. GnuPG-bug-id: 6342
* core,w32: More robust detection of GnuPG Desktop dir layoutWerner Koch2023-02-011-20/+75
| | | | | | | | | | * src/w32-util.c (INST_TYPE_GPG4WIN, INST_TYPE_GPGDESK): New to replace the numeric constants. (find_version_file): New. (_gpgme_get_gpgconf_path): Guess a default for inst_type. -- GnuPG-bug-id: 6362
* qt: Fix build without installed gpgme++ headersIngo Klöcker2023-01-311-1/+1
| | | | | | | | * lang/qt/src/filelistdataprovider.cpp: Include error.h without folder prefix. -- GnuPG-bug-id: 6342
* doc: Update "since" versionIngo Klöcker2023-01-311-1/+1
| | | | --
* doc: Update NEWSIngo Klöcker2023-01-311-1/+5
| | | | | | -- GnuPG-bug-id: 6342
* qt: Remove unused and commented-out codeIngo Klöcker2023-01-314-45/+0
| | | | | | | | | | | | * lang/qt/src/qgpgmeencryptarchivejob.cpp, lang/qt/src/qgpgmeencryptarchivejob.h (QGpgMEEncryptArchiveJob): Remove member function resultHook and member mResult. * lang/qt/src/qgpgmesignarchivejob.cpp, lang/qt/src/qgpgmesignarchivejob.h (QGpgMESignArchiveJob): Remove member function resultHook and member mResult. -- GnuPG-bug-id: 6342
* cpp: Fix debug output of SignatureModeIngo Klöcker2023-01-311-1/+9
| | | | | | | | | | * lang/cpp/src/context.cpp (operator<<): Treat signature mode as combination of a 2-bit flag and a 1-bit flag. -- This fixes the output for normal signature mode. GnuPG-bug-id: 6342
* qt: Add job for creating encrypted signed archivesIngo Klöcker2023-01-319-31/+495
| | | | | | | | | | | | | | | | | | | | | | * lang/qt/src/signencryptarchivejob.cpp, lang/qt/src/signencryptarchivejob.h, lang/qt/src/signencryptarchivejob_p.h, lang/qt/src/qgpgmesignencryptarchivejob.cpp, lang/qt/src/qgpgmesignencryptarchivejob.h: New. * lang/qt/src/protocol.h (class Protocol): Add pure virtual member function signEncryptArchiveJob * lang/qt/src/protocol_p.h (Protocol::signEncryptArchiveJob): ... and implement it. * lang/qt/src/Makefile.am: Update accordingly. * lang/qt/tests/run-encryptarchivejob.cpp (displayName): Remove. (CommandLineOptions): Initialize member armor. Add member sign. (parseCommandLine): Update application description. Add and parse option -s/--sign. (main): Use SignEncryptArchiveJob if sign option is set. -- GnuPG-bug-id: 6342
* qt,tests: Avoid leaking ContextIngo Klöcker2023-01-311-3/+5
| | | | | | | * lang/qt/tests/t-import.cpp: Wrap Context*s in unique_ptr. -- This fixes leaks found with -fsanitize=address.