aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* cpp: Add missing transition, remove two ignored (and wrong) transitionsgpgme-1.24-branchIngo Klöcker12 days1-2/+2
| | | | | | | | | | | | | | | | | | | | * lang/cpp/src/gpgsignkeyeditinteractor.cpp (makeTable): Remove two transitions. Add one transition. * lang/cpp/src/gpgsignkeyeditinteractor.cpp (makeTable) <sign_uid.dupe_okay>: Add one more transition. -- This adds a missing transition for the CONFIRM2 state which ensures that the certification is properly completed in case two confirmations were requested. And it removes two useless (and wrong) transitions which are overwritten by two later correct transitions in the map. GnuPG-bug-id: 7600 This is gpgmepp commit 5b77f4072d03342b8719bbe93fc77641fffb476a The second patch fixed a bug seen before we could test Ingo's patch. - wk
* cpp: Validate the transition mapIngo Klöcker2025-04-111-0/+4
| | | | | | | | | | | | * lang/cpp/src/gpgsignkeyeditinteractor.cpp (makeTable): Assert that all transitions go from one state to a different state. -- The state machine gets stuck if a transition doesn't change the state. Make sure that this cannot happen again by mistake. GnuPG-bug-id: 7600 Taken from gpgmepp commit 6f2e91d4d25afa6934ceaf1563a4d826a904d644
* cpp: Ensure that all transitions go from one state to a different stateIngo Klöcker2025-04-111-3/+8
| | | | | | | | | | | | | | | | * src/gpgsignkeyeditinteractor.cpp (makeTable): Replace transitions from CONFIRM to CONFIRM with transitions from CONFIRM to CONFIRM2 and vice versa. Add transitions from CONFIRM2 to some other state for all transitions from CONFIRM to some other state. -- The state machine gets stuck if a transition doesn't change the state but an action is required. To avoid this situation the CONFIRM2 state was introduced, but it was not used correctly. GnuPG-bug-id: 7600 Taken from gpgmepp commit aee2b30482406e677dbddf1a68b2a11a5dc70adf
* Post release updates.Werner Koch2025-02-102-1/+10
| | | | --
* Release 1.24.2gpgme-1.24.2Werner Koch2025-02-102-4/+8
|
* Prepare NEWS for the next releaseWerner Koch2025-02-045-5/+19
| | | | --
* core: Fix regression for RSA in gpgme_pubkey_algo_string.Werner Koch2025-02-041-1/+1
| | | | | | | | * src/gpgme.c (gpgme_pubkey_algo_string): Consider all RSA variants. -- Fixes-commit: 62b6c1f16ae0ed7b0eb1b095ee383aa0910314bb GnuPG-bug-id: 7508
* build: Fix generation of ChangeLog on secondary working treesIngo Klöcker2025-01-151-1/+1
| | | | | | | | | * Makefile.am (gen-ChangeLog): Use test -e instead of test -d to check for git working trees. -- In secondary working trees (created with `git worktree add ...`) .git is a file referencing the original .git directory.
* build: Remove defining GPG_ERR_ENABLE_ERRNO_MACROS.NIIBE Yutaka2025-01-151-3/+0
| | | | | | | | | | * configure.ac (GPG_ERR_ENABLE_ERRNO_MACROS): Remove. -- It was for Windows CE. Signed-off-by: NIIBE Yutaka <[email protected]>
* tests,json: Prevent failing tests after 2027-05-15Ingo Klöcker2025-01-022-20/+20
| | | | | | | | | | | | | | | | | | | * tests/json/key-with-revokers.asc: Replace with new public key. * tests/json/t-keylist-revokers.out.json: Update to new public key. -- The old test key expired on 2027-05-15 which would break the tests after this date. Replace it with a new test key which doesn't expire. The new key was generated with gpg --faked-system-time 1715782979 \ --add-desig-revoker sensitive:A0FF4590BB6122EDEF6E3C542D727CC768697734 \ --add-desig-revoker 23FD347A419429BACCD5E72D6BC4778054ACD246 \ --quick-gen-key [email protected] default default never and exported with gpg --export --armor --export-options export-sensitive-revkeys \ [email protected] GnuPG-bug-id: 7471
* build,python: Fix uninstalling in distcheckIngo Klöcker2024-12-041-1/+1
| | | | | | | | | | | | | | * lang/python/Makefile.am (uninstall-local): Get platlib path relative to data path. -- For unknown reasons (at least on my system) Python 3.1x's sysconfig returns a platlib (== directory for site-specific, platform-specific files) starting with /usr/local although the prefix config variable is /usr. This broke uninstallation because a wrong folder was (tried to) remove. Python 2.7 and 3.9 return a platlib starting with just /usr. In order to always get the correct relative path we use the data path instead of the prefix config variable as anchor directory.
* build,python: Add Python 3.13 and remove Python 3.8Ingo Klöcker2024-12-043-4/+4
| | | | | | | * configure.ac: Look for Python 3.13. Don't look for Python 3.8 anymore. * lang/python/setup.py.in: Update Python versions in classifiers. * m4/python.m4: Add python3.13 as valid interpreter. Remove python3.8. --
* Post release updatesWerner Koch2024-12-042-1/+5
| | | | --
* Release 1.24.1gpgme-1.24.1Werner Koch2024-12-042-4/+16
| | | | | | | | | | | -- Although the GPGME_PK_KYBER is technically an API change we ignore it because this is just another enum value which does not change the ABI and no software uses it yet. Kleopatra is the first to use this and it already has a test for gpgme 1.24.1. GnuPG-bug-id: 7440
* Add a configure test for gettid.Werner Koch2024-12-042-2/+28
| | | | | | | | | | | | * configure.ac (HAVE_GETTID,HAVE_SYS_GETTID): New test. * src/debug.c: Include syscall.h if needed. (tid_log_callback) [HAVE_SYS_GETTID]: Use SYS_gettid -- Linux introduced the gettid syscall with 2.4.11 but glibc only with its version 2.30. This patch allows building on older platforms. Co-authored-by: lgh1
* cpp: Add Kyber algorithmIngo Klöcker2024-11-141-0/+1
| | | | | | | | * lang/cpp/src/key.h (enum Subkey::PubkeyAlgo): Add AlgoKyber with same value as GPGME_PK_KYBER. -- GnuPG-bug-id: 7397
* Support the Kyber algorithm in key listings.Werner Koch2024-11-144-5/+17
| | | | | | | * src/gpgme.h.in (GPGME_PK_KYBER): New. * src/conversion.c (_gpgme_map_pk_algo): Handle Kyber. * src/gpgme.c (gpgme_pubkey_algo_string): Support Kyber. (gpgme_pubkey_algo_name): Add Kyber.
* Post release updatesWerner Koch2024-11-062-1/+5
| | | | --
* Release 1.24.0gpgme-1.24.0Werner Koch2024-11-065-15/+26
|
* Include the full commit id.Werner Koch2024-11-053-9/+25
| | | | | | * autogen.sh: Update to version 2024-07-04 from libgpg-error. * configure.ac (BUILD_COMMITID): New. Append to VERSION file. * src/version.c (cright_blurb): Use BUILD_COMMITID here.
* core: New context flags "known-notations".Werner Koch2024-10-297-0/+94
| | | | | | | | | | | | | | | | | | | * src/gpgme.c (gpgme_set_ctx_flag): Add "known-notations". (gpgme_get_ctx_flag): Ditto. (gpgme_release): Free variable. * src/context.h (struct gpgme_context): Add "known_notations". * src/engine-gpg.c (struct engine_gpg): Add "known_notations". (gpg_release): Free variable. (gpg_set_engine_flags): Set variable. (add_known_notations): New. (gpg_decrypt, gpg_verify): Call function. * tests/run-decrypt.c (main): Add option --known-notations. * tests/run-verify.c (main): Ditto. -- GnuPG-bug-id: 4060
* core: Add new helper _gpgme_strtokenize.Werner Koch2024-10-293-1/+81
| | | | | | | | | * src/conversion.c (spacep): New. (_gpgme_strtokenize): New. -- Function taken from GnuPG and license changed to LGPL 2.1. The version in GnuPG was entirely written by the author.
* qt: Fix typoIngo Klöcker2024-10-231-1/+1
| | | | | * lang/qt/src/Makefile.am (camelcase_headers): Fix typo in header name. --
* qt: Put attributes before declarationsIngo Klöcker2024-10-231-1/+1
| | | | | | * lang/qt/src/downloadjob.h (DownloadJob::start): Move QGPGME_DEPRECATED before the whole function declaration. --
* cpp: Put attributes before declarationsIngo Klöcker2024-10-232-2/+2
| | | | | | | * lang/cpp/src/key.h (UserID::Signature::Notation): Move GPGMEPP_DEPRECATED before the whole typedef declaration. * lang/cpp/src/verificationresult.h (Signature::Notation): Ditto. --
* cpp: Add/change some includesIngo Klöcker2024-10-233-4/+6
| | | | | | | * lang/cpp/src/gpgaddexistingsubkeyeditinteractor.h, lang/cpp/src/gpgrevokekeyeditinteractor.h: Include <string>. * lang/cpp/src/key.h: Include <ctime> instead of <sys/time.h>. --
* cpp,doc: Update NEWSIngo Klöcker2024-10-221-0/+4
| | | | --
* cpp: Add support for new flag fields beta_complianceIngo Klöcker2024-10-216-6/+38
| | | | | | | | | | | | | | | | | | * lang/cpp/src/decryptionresult.cpp, lang/cpp/src/decryptionresult.h (class DecryptionResult): Add method isBetaCompliance. * lang/cpp/src/decryptionresult.cpp (operator<<): Add new flag. * lang/cpp/src/key.cpp, lang/cpp/src/key.h (class Key): Add method isBetaCompliance. (class Subkey): Add method isBetaCompliance. * lang/cpp/src/key.cpp: (Key::isDeVs): Remove duplicate check of is_de_vs of first subkey. (operator<<): Add new flag. * lang/cpp/src/verificationresult.cpp, lang/cpp/src/verificationresult.h (class Signature): Add method isBetaCompliance. * lang/cpp/src/verificationresult.cpp (operator<<): Add new flag. -- GnuPG-bug-id: 7346
* doc: Fix, update, add API documentationIngo Klöcker2024-10-211-3/+12
| | | | | | -- Nowadays, VS-NfD requires RSA 3072. And the documentation of gpgme_signature_t was missing the compliance flags.
* core: fix passing --proc-all-sigs to gpgtarTobias Fella2024-10-091-0/+12
| | | | | | | | * src/engine-gpg.c: Pass --gpg-args before passing --proc-all-sigs if using gpgtar -- GnuPG-Bug-ID: 7320
* core: New flag fields beta_compliance.Werner Koch2024-10-076-9/+33
| | | | | | | | | | | | | * src/gpgme.h.in (struct _gpgme_subkey): Add field beta_compliance. (struct _gpgme_op_decrypt_result): Ditto. (struct _gpgme_signature): Ditto. * src/util.h (PARSE_COMPLIANCE_FLAGS): Handle the new 2023 value. * tests/run-decrypt.c: Append a "(beta)" to the vs-de compliance. * tests/run-keylist.c: Ditto. * tests/run-verify.c: Ditto. -- See GnuPG commit b287fb577587655559fefb90f7ed90c9a15dc6a3
* core: Allow GPGME_CREATE_ADSK also for gnupg 2.2.45Werner Koch2024-09-261-1/+6
| | | | * src/engine-gpg.c (gpg_addadsk): Extend the version check.
* core: Report failed encryption/signing if gpgtar didn't emit SUCCESSIngo Klöcker2024-09-204-10/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | src/encrypt-sign.c (encrypt_sym_status_handler): Add call of _gpgme_encrypt_status_handler. (encrypt_sign_start): Call _gpgme_op_encrypt_init_result with success_required=1 if archive is created. Always call _gpgme_op_sign_init_result with success_required=0 because the encrypt status handler already checks for SUCCESS. src/encrypt.c (op_data_t): Add success_seen flag. (_gpgme_encrypt_status_handler): Return error if we didn't see a required SUCCESS on GPGME_STATUS_EOF. Set success_seen flag on GPGME_STATUS_SUCCESS. (encrypt_sym_status_handler): Add call of _gpgme_encrypt_status_handler. (_gpgme_op_encrypt_init_result): Add argument success_required. Set success_seen flag if SUCCESS is not required. (encrypt_start): Call _gpgme_op_encrypt_init_result with success_required=1 if archive is created. src/ops.h (_gpgme_op_sign_init_result, _gpgme_op_encrypt_init_result): Add argument success_required to prototypes. src/sign.c (op_data_t): Add success_seen flag. (_gpgme_sign_status_handler): Return error if we didn't see a required SUCCESS on GPGME_STATUS_EOF. Set success_seen flag on GPGME_STATUS_SUCCESS. (sign_init_result): Add argument success_required. Set success_seen flag if SUCCESS is not required. (_gpgme_op_sign_init_result): Add argument success_required and forward it to sign_init_result. (sign_start): Call sign_init_result with success_required=1 if archive is created. -- gpgtar emits a SUCCESS status just before successful termination. If the process terminates unexpectedly (e.g. because it's killed) then gpgme now reports GPG_ERR_EOF. The SUCCESS status is only required if a signed and/or encrypted archive is created which is only supported for OpenPGP. The other engines reject the GPGME_ENCRYPT_ARCHIVE flag so that we don't need to check the protocol in the generic code. This change also adds handling of invalid recipients in case symmetric encryption is used which makes sense because one can combine symmetric and public key encryption. GnuPG-bug-id: 6554
* doc,build: Look for yat2m in $prefix/binIngo Klöcker2024-09-171-1/+1
| | | | | | | | * configure.ac: Look for yat2m first in $prefix/bin and then in $PATH. -- This makes sure that yat2m is found in case libgpg-error and gpgme are installed in the same prefix.
* doc,build: Fix "make install" if yat2m isn't availableIngo Klöcker2024-09-172-0/+6
| | | | | | | | * configure.ac: Add hint for YAT2M variable. Set HAVE_YAT2M if yat2m was found. * doc/Makefile.am (myman_pages): Set to empty string if yat2m isn't available --
* doc: Provide a man page for gpgme-json.Sébastien Noel2024-09-103-2/+103
| | | | | | | | | | * doc/gpgme-json.texi: New. * configure.ac: Check for yat2m. * doc/Makefile.am (YAT2M_OPTIONS): New. Also add all the other man page stuff similar to what is used in gnupg. -- ChangeLog entries by wk.
* doc: Update the texinfo version also on gpgme.texi changes.Werner Koch2024-09-101-1/+1
| | | | | -- Fixes-commit: 7e7eaf43424556c3c25edc7b67e760ab60de55ce
* core: New encryption flags GPGME_ENCRYPT_ADD_RECP and _CHG_RECP.Werner Koch2024-09-095-3/+71
| | | | | | | | | | | | | * src/gpgme.h.in (GPGME_ENCRYPT_ADD_RECP, GPGME_ENCRYPT_CHG_RECP): New flag values. * src/engine-gpg.c (have_cmd_modify_recipients): New. (gpg_encrypt): Check availability of the feature and prepare command. * tests/run-encrypt.c (main): New options --add-recipients and --change-recipients. -- GnuPG-bug-id: 1825
* core: Treat email-only user IDs with upper case letters as email addressIngo Klöcker2024-09-042-420/+557
| | | | | | | | | | | | | | | | | | | | * src/key.c (_gpgme_key_append_name): Support email-only user IDs with upper case letters. * tests/gpg/t-keylist.c (struct key_info_s): Add algo, length, sec_algo, sec_length. (keys): Add expected algo and length for primary and secondary subkeys. (main): Factor out code for checking a key and the code for the keylist test. Call the factored out test function and a new test function. (check_key, test_keylist, key_with_email_only_user_id, key_info_email_only_user_id, test_email_only_user_id_with_upper_case_letters): New. -- Email-only user IDs with upper case letters are now also parsed as a user ID with empty name and the complete user ID as email. GnuPG-bug-id: 7280
* build,python: Fix build with setuptools 72.2.0+Ingo Klöcker2024-09-021-3/+3
| | | | | | | | | | | | | | | | | * lang/python/setup.py.in (BuildExtFirstHack.run): Extend members of the extension instead of lists that were passed to the extension. -- setuptools 72.2.0 integrated changes in distutils which included "Support for Pathlike objects in data files and extensions". With this change the extensions now take a copy of the sources list passed to the constructor instead of keeping a reference to the passed list. Hence, modifying the sources list that was passed to the extension didn't change the sources list of the extension anymore. This is fixed by modifying the sources list of the extension directly. For consistency we do the same for the swig_opts list. GnuPG-bug-id: 7281
* cpp: Add pkgconfig file for gpgmeppIngo Klöcker2024-08-293-3/+43
| | | | | | | | | | | | | | | | * configure.ac: Add substitutions GPGMEPP_PKGCONFIG_LIBS, GPGMEPP_PKGCONFIG_CFLAGS, GPGMEPP_PKGCONFIG_HOST. Apply them. Configure gpgmepp.pc file. * lang/cpp/src/Makefile.am (pkgconfigdir, pkgconfig_DATA): New. (EXTRA_DIST): Add gpgmepp.pc.in. * lang/cpp/src/gpgmepp.pc.in: New. -- This pkgconfig file will be used, at least temporarily, by qgpgme to find gpgmepp, but it's also useful in general for projects that don't use cmake. GnuPG-bug-id: 7262
* cpp: Go with default answer on unknown question by key edit interfaceIngo Klöcker2024-08-281-0/+14
| | | | | | | | | | | | | | * lang/cpp/src/editinteractor.cpp (edit_interactor_callback_impl): Send empty string to edit interface if General Error occurred. -- A General Error is usually returned by the nextState function of the concrete EditInteractor subclasses if gpg asks an unexpected question which isn't handled by the edit interactor's state machine. In this case, it's usually safe to go with the default answer. This makes the edit interactors much more robust. GnuPG-bug-id: 7274
* qt: Add support for new context flag "proc-all-sigs"Ingo Klöcker2024-08-2621-8/+191
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lang/qt/src/decryptverifyarchivejob.cpp, lang/qt/src/decryptverifyarchivejob.h (DecryptVerifyArchiveJob): Add member functions setProcessAllSignatures, processAllSignatures. * lang/qt/src/decryptverifyarchivejob_p.h (DecryptVerifyArchiveJobPrivate): Add member m_processAllSignatures. * lang/qt/src/decryptverifyjob.cpp, lang/qt/src/decryptverifyjob.h (DecryptVerifyJob): Add member functions setProcessAllSignatures, processAllSignatures. * lang/qt/src/decryptverifyjob_p.h (DecryptVerifyJobPrivate): Add member m_processAllSignatures. * lang/qt/src/qgpgmedecryptverifyarchivejob.cpp (decrypt_verify_from_file_name): Add argument "processAllSignatures". Set context flag "proc-all-sigs" if requested. (QGpgMEDecryptVerifyArchiveJob::start): Set context flag "proc-all-sigs" if requested. (QGpgMEDecryptVerifyArchiveJobPrivate::startIt): Pass m_processAllSignatures to decrypt_verify_from_file_name. * lang/qt/src/qgpgmedecryptverifyjob.cpp (decrypt_verify_from_filename): Add argument "processAllSignatures". Set context flag "proc-all-sigs" if requested. (QGpgMEDecryptVerifyJob::start, QGpgMEDecryptVerifyJob::exec): Set context flag "proc-all-sigs" if requested. (QGpgMEDecryptVerifyJobPrivate::startIt): Pass m_processAllSignatures to decrypt_verify_from_filename. * lang/qt/src/qgpgmeverifydetachedjob.cpp (verify_from_filename): Add argument "processAllSignatures". Set context flag "proc-all-sigs" if requested. (QGpgMEVerifyDetachedJob::start, QGpgMEVerifyDetachedJob::exec): Set context flag "proc-all-sigs" if requested. (QGpgMEVerifyDetachedJobPrivate::startIt): Pass m_processAllSignatures to decrypt_verify_from_filename. * lang/qt/src/qgpgmeverifyopaquejob.cpp (verify_from_filename): Add argument "processAllSignatures". Set context flag "proc-all-sigs" if requested. (QGpgMEVerifyOpaqueJob::start, QGpgMEVerifyOpaqueJob::exec): Set context flag "proc-all-sigs" if requested. (QGpgMEVerifyOpaqueJobPrivate::startIt): Pass m_processAllSignatures to decrypt_verify_from_filename. * lang/qt/src/verifydetachedjob.cpp, lang/qt/src/verifydetachedjob.h (VerifyDetachedJob): Add member functions setProcessAllSignatures, processAllSignatures. * lang/qt/src/verifydetachedjob_p.h (VerifyDetachedJobPrivate): Add member m_processAllSignatures. * lang/qt/src/verifyopaquejob.cpp, lang/qt/src/verifyopaquejob.h (VerifyOpaqueJob): Add member functions setProcessAllSignatures, processAllSignatures. * lang/qt/src/verifyopaquejob_p.h (VerifyOpaqueJobPrivate): Add member m_processAllSignatures. * lang/qt/tests/run-decryptverifyarchivejob.cpp, lang/qt/tests/run-decryptverifyjob.cpp, lang/qt/tests/run-verifydetachedjob.cpp, lang/qt/tests/run-verifyopaquejob.cpp (struct CommandLineOptions): Add member processAllSignatures. (parseCommandLine): Add command line option --process-all-signatures. (main): Pass new option to the job. -- The new option processAllSignatures is added to all jobs that verify data signatures. By enabling this option, one can tell gpg not to stop checking signatures after the first bad signature. GnuPG-bug-id: 6870
* New context flag "proc-all-sigs".Werner Koch2024-08-236-1/+64
| | | | | | | | | | | | | * src/context.h (struct gpgme_context): Add proc_all_sigs. * src/gpgme.c (gpgme_set_ctx_flag): Add flag "proc-all-sigs". (gpgme_get_ctx_flag): Ditto. * src/engine-gpg.c (engine.gpg): Add flags.proc_all_sigs. (have_option_proc_all_sigs): New. (gpg_set_engine_flags): Set flag from context. (build_argv): Add --proc-all-sigs if requested and supported. -- GnuPG-bug-id: 7261
* qt,tests: Add make target to clean the keyringIngo Klöcker2024-08-071-0/+5
| | | | | | | | | | * lang/qt/tests/Makefile.am (clean-keyring): New target. -- Many tests operate on the keyring in the build directory. If a test fails then the keyring might be in an unclean state causing subsequent tests to fail. The new make target allows cleaning the keyring without resorting to brute force with "make clean".
* qt: Use --quick-set-ownertrust if availableIngo Klöcker2024-08-072-1/+19
| | | | | | | | | | | | | | | | * lang/qt/src/qgpgmechangeownertrustjob.cpp (set_owner_trust): New. (QGpgMEChangeOwnerTrustJob::start): Use set_owner_trust if gpg is new enough. * lang/qt/tests/t-ownertrust.cpp (ChangeOwnerTrustTest::testChangeOwnerTrust): Log unexpected error. -- Using the --quick-set-ownertrust command to set the owner trust is much more robust than using the edit interface. Prefer the former if gpg supports it. GnuPG-bug-id: 7239
* tests,json: Remove no longer needed codeIngo Klöcker2024-08-071-106/+1
| | | | | | | | | | * tests/json/t-json.c (parse_version_number, parse_version_string, compare_versions, check_gpg_version): Remove. (main): Use have_gpg_version from t-support.h. -- In the meantime gpgrt provides API for comparing versions (which is used by have_gpg_version in t-support.h).
* qt: Support disabling and enabling of keysIngo Klöcker2024-08-079-7/+300
| | | | | | | | | | | | | | | | | | | * lang/qt/src/Makefile.am: Add new files. * lang/qt/src/job.cpp (QuickJob): Move definition of constructor and destructor and inclusion of the moc file to quickjob.cpp. * lang/qt/src/qgpgmequickjob.cpp (class QGpgMEQuickJobPrivate): New. (QGpgMEQuickJob::QGpgMEQuickJob): Instantiate private job class. (set_key_enabled): New. * lang/qt/src/quickjob.cpp: New. * lang/qt/src/quickjob.h (class QuickJob): Add member function startSetKeyEnabled. * lang/qt/src/quickjob_p.h: New. * lang/qt/tests/Makefile.am: Add new test for Qt 5 and Qt 6. * lang/qt/tests/t-disablekey.cpp: New. -- GnuPG-bug-id: 7239
* cpp: Add support for setting owner trust and for disabling keysIngo Klöcker2024-08-063-0/+74
| | | | | | | | | | * lang/cpp/src/context.cpp, lang/cpp/src/context.h (class Context): Add member functions setOwnerTrust, startSetOwnerTrust, setKeyEnabled, startSetKeyEnabled. * lang/cpp/src/context.cpp (owner_trust_to_string): New. -- GnuPG-bug-id: 7239
* core: New function gpgme_op_setownertrustIngo Klöcker2024-08-0623-7/+589
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/Makefile.am (main_sources): Add new file. * src/context.h (ctx_op_data_id_t): Add OPDATA_SETOWNERTRUST. * src/engine.c, src/engine.h (_gpgme_engine_op_setownertrust): New. * src/engine-backend.h (engine_ops): Add 'setownertrust' and adjust all engine initializers. * src/engine-gpg.c (gpg_setownertrust): New. (_gpgme_engine_ops_gpg): Set setownertrust to gpg_setownertrust. * src/gpgme.h.in (gpgme_op_setownertrust_start, gpgme_op_setownertrust): New. * src/gpgme.def, src/libgpgme.vers: Add new functions. * src/setownertrust.c: New. * doc/gpgme.texi: Document new functions. * tests/Makefile.am (noinst_PROGRAMS): Add new test program. * tests/run-setownertrust.c: New. * tests/gpg/Makefile.am (c_tests): Add new file. (LDADD): Add @GPG_ERROR_LIBS@. * tests/gpg/t-setownertrust.c: New. * tests/gpg/t-support.h (have_gpg_version): New. -- This extends GPGME to support the --quick-set-ownertrust command added by GnuPG 2.4.6. This allows changing the owner trust of keys and enabling/disabling keys without using the editinteractor interface. GnuPG-bug-id: 7239