aboutsummaryrefslogtreecommitdiffstats
path: root/NEWS (unfollow)
Commit message (Collapse)AuthorFilesLines
2018-03-15cpp: Expose skipped_v3_keysAndre Heinecke1-0/+1
* lang/cpp/src/importresult.cpp, lang/cpp/src/importresult.h (ImportResult::numV3KeysSkipped): New. -- GnuPG-Bug-Id: T3776
2018-03-15core: Parse skipped_v3_keysAndre Heinecke1-1/+1
* src/gpgme.h.in (gpgme_import_result_t): Extend with skipped_v3_keys. * src/import.c (gpgme_op_import_result): Extend debug with new field. (parse_import_res): Parse skipped_v3_keys. * tests/gpg/t-support.h, tests/run-support.h (print_import_result): Print skipped_v3_keys. -- This makes it possible to handle this in a GUI in a future version. GnuPG-Bug-Id: T3776
2018-02-16cpp: Add shorthand for key locateAndre Heinecke1-0/+6
* lang/cpp/src/key.cpp (Key::locate): New static helper. * lang/cpp/src/key.h: Update accordingly.
2017-12-12Post release updates.Werner Koch1-0/+3
--
2017-12-12Release 1.10.0.gpgme-1.10.0Werner Koch1-1/+25
Signed-off-by: Werner Koch <[email protected]>
2017-12-01qt: Add job for quick commandsAndre Heinecke1-0/+1
* lang/qt/src/qgpgmequickjob.cpp, lang/qt/src/qgpgmequickjob.h, lang/qt/src/quickjob.h: New. * lang/qt/src/Makefile.am, lang/qt/src/protocol.h, lang/qt/src/protocol_p.h, lang/qt/src/job.cpp: Update accordingly. -- Keeping it in line with the Job for everything pattern. Although it's reduced to one job for four commands as the commands all behave the same.
2017-12-01cpp: Wrap create_key and create_subkeyAndre Heinecke1-0/+4
* lang/cpp/src/context.cpp, lang/cpp/src/context.h (Context::startCreateKey) (Context::createKey, Context::createSubkey) (Context::startCreateSubkey): New.
2017-09-04cpp: Fix version info comparisonAndre Heinecke1-2/+3
* lang/cpp/src/engineinfo.h (EngineInfo::Version::operator<): Fix logic. * lang/cpp/src/engineinfo.h (EngineInfo::Version::operator>): New. * NEWS: Mention added API -- This fixes a logic error that 2.2.0 < 2.1.19 would return true.
2017-08-24core: New context flag "auto-key-retrieve"Werner Koch1-0/+1
* src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): New flag "auto-key-retrieve". * src/context.h (gpgme_context): New field auto_key_retrieve. * src/engine-backend.h (struct engine_ops): Add arg auto_key_retrieve to field 'decrypt'. * src/engine-gpg.c (gpg_decrypt): Add arg auto_key_retrieve and pass option --auto-key-retrieve to gpg. Adjust all callers. (gpg_verify): Ditto. * src/engine-gpgsm.c (gpgsm_decrypt): Add dummy arg auto_key_retrieve. * src/engine-uiserver.c (uiserver_decrypt): Ditto. * tests/run-verify.c (main): Add option --auto-key-retrieve. -- This makes the --auto-key-retrieve option available in the GPGME API. Test plan: Run GPGME_DEBUG=9:out tests/run-verify SIGNEDFILE with and without its new option --auto-key-retrieve and check in the trace stored in "out" whether --auto-key-retrieve was passed to gpg. Signed-off-by: Werner Koch <[email protected]>
2017-08-24Set next version to 1.10.0Werner Koch1-14/+14
--
2017-08-15NEWS: Add missing entry.Marcus Brinkmann1-0/+1
2017-08-11g10: Add new delete operations that allow more flags.Marcus Brinkmann1-0/+4
* NEWS: Document new interfaces. * doc/gpgme.texi: Document new interfaces. * src/gpgme.h.in (GPGME_DELETE_ALLOW_SECRET, GPGME_DELETE_FORCE, gpgme_op_delete_ext_start, gpgme_op_delete_ext): New. * src/delete.c (delete_start): Change allow_secret argument to flags. (gpgme_op_delete_ext, gpgme_op_delete_ext_start): New functions. * src/engine-backend.h (delete): Change allow_secret argument to flags. * src/engine.c (_gpgme_engine_op_delete): Likewise. * src/engine.h (_gpgme_engine_op_delete): Likewise (for prototype). * src/engine-gpgsm.c (gpgsm_delete): Likewise. * src/engine-gpg.c (gpg_delete): Likewise. Implement GPGME_DELETE_FORCE. * src/gpgme.def (gpgme_op_delete_ext, gpgme_op_delete_ext_start): New. * src/libgpgme.vers (gpgme_op_delete_ext, gpgme_op_delete_ext_start): New. Signed-off-by: Marcus Brinkmann <[email protected]> GnuPG-bug-id: 2916
2017-07-11python: Improve error handling.Justus Winter1-0/+1
* NEWS: Update. * lang/python/src/core.py (Context.__read__): New helper function. (Context.encrypt): Attach partial results to exceptions. (Context.decrypt): Likewise. (Context.sign): Likewise. (Context.verify): Likewise. * lang/python/src/errors.py (GpgError): Move the core of GPGMEError to this class, add a nicer interface for it. This makes the errors thrown by this library more uniform, and allows us to track the underlying error in synthesized high-level errors. (GPGMEError): Simplify. (...): Make sure to call the parent classes' constructor in all other classes. -- Attach partial results to errors. Some operations return results even though they signal an error. Of course this information must be taken with a grain of salt. But often, this information is useful for diagnostic uses or to give the user feedback. Since the normal control flow is disrupted by the exception, the callee can no longer return results, hence we attach them to the exception objects. GnuPG-bug-id: 3271 Signed-off-by: Justus Winter <[email protected]>
2017-06-01Add flag 'is_de_vs' to decryption results and signatures.Justus Winter1-0/+9
* NEWS: Update. * lang/cpp/src/decryptionresult.cpp (DecryptionResult::isDeVs): New function. * lang/cpp/src/decryptionresult.h (DecryptionResult::isDeVs): New prototype. * lang/cpp/src/verificationresult.cpp (Signature::isDeVs): New function. * lang/cpp/src/verificationresult.h (Signature::isDeVs): New prototype. * lang/python/src/results.py (DecryptResult): Turn field 'is_de_vs' into a boolean. (Signature): Likewise. * src/decrypt.c (_gpgme_decrypt_status_handler): Handle the new compliance status line. * src/verify.c (_gpgme_verify_status_handler): Likewise. * src/gpgme.h.in (gpgme_status_code_t): Add new status codes for the new status lines. * src/keylist.c (parse_pub_field18): Move function to 'util.h'. (keylist_colon_handler): Adapt callsites. * src/status-table.c (status_table): Add new status lines. * src/util.h (PARSE_COMPLIANCE_FLAGS): New macro. This used to be 'parse_pub_field18', but turned into a macro to make it polymorphic. -- When decrypting data and verifying signatures, report whether the operations are in compliance with the criteria for data classified as VS-NfD. This information can the be presented to the user. GnuPG-bug-id: 3059 Signed-off-by: Justus Winter <[email protected]>
2017-04-05Fix typo.Justus Winter1-1/+1
-- Signed-off-by: Justus Winter <[email protected]>
2017-03-28Post release updatesgpgme-1.9-branchWerner Koch1-1/+5
--
2017-03-28Release 1.9.0gpgme-1.9.0Werner Koch1-3/+26
* configure.ac <c>: Bump LT version to C29/A18/R0. <cpp>: Bump LT version to C10/A4/R0. <qt>: Bump LT version to C9/A2/R0. -- Signed-off-by: Werner Koch <[email protected]>
2017-03-28core: Prepare for new key listing data send by gpg.Werner Koch1-0/+4
* src/gpgme.h.in (gpgme_user_id_t): New fields 'origin' and 'last_update'. (gpgme_key_t): New fields 'origin' and 'last_update'. * src/conversion.c (_gpgme_parse_timestamp_ul): New. * src/keylist.c (keylist_colon_handler): Parse fields 19 and 20. * tests/run-keylist.c (main): Print new fields. Signed-off-by: Werner Koch <[email protected]>
2017-03-24Mention new cpp changes in the NEWSAndre Heinecke1-0/+6
-- Somone that calls a function startCombinedDecryptionAndVerification should be required to always type it without autocompletion.
2017-03-24core: New flags GPGME_DECRYPT_UNWRAP and GPGME_ENCRYPT_WRAP.Werner Koch1-0/+5
* src/gpgme.h.in (GPGME_ENCRYPT_WRAP): New const. (gpgme_decrypt_flags_t): New enum. (GPGME_DECRYPT_VERIFY): New const (GPGME_DECRYPT_UNWRAP): New const (gpgme_op_decrypt_ext_start): New func. (gpgme_op_decrypt_ext): New func. * src/decrypt-verify.c (gpgme_op_decrypt_ext_start): New. (gpgme_op_decrypt_ext): New. (decrypt_verify_start): Add arg FLAGS. Replace call to engine_op_decrypt_verify by the plain decrypt with the flag set. (gpgme_op_decrypt_verify_start): Pass the flag. (gpgme_op_decrypt_verify): Pass the flag. * src/decrypt.c (decrypt_start): Rename to ... (_gpgme_decrypt_start): this. Add arg FLAGS. Pass FLAGS to engine_op_decrypt. (gpgme_op_decrypt_start): Adjust for chnage pass 0 for FLAG. (gpgme_op_decrypt_start): Ditto. * src/engine.c (_gpgme_engine_op_decrypt_verify): Remove. (_gpgme_engine_op_decrypt): Add arg FLAGS. * src/gpgme.def, src/libgpgme.vers: Add new functions. * src/engine-backend.h (struct engine_ops): Remove member 'decrypt_verify'. Add FLAGS to 'decrypt'. Adjust all initialization. * src/engine-uiserver.c (uiserver_decrypt): Remove. (uiserver_decrypt_verify): Remove. (_uiserver_decrypt): Rename to ... (uiserver_decrypt): this. Replace arg VERIFY by new arg FLAGS. * src/engine-gpg.c (gpg_decrypt): Support GPGME_DECRYPT_UNWRAP. (gpg_encrypt): Support GPGME_ENCRYPT_WRAP. * tests/run-decrypt.c (main): New option --unwrap. * tests/run-encrypt.c (main): New option --wrap. -- Manual testing of that wrap/unwrap feature can be done this way: ./run-encrypt --verbose --key Alice /etc/motd > x ./run-decrypt --verbose --unwrap x > y ./run-encrypt --verbose --key Bob --wrap y > z 1. The message was first encrypted to Alice. 2. Alice decrypts the message receiving a valid OpenPGP message. 3. Alice encrypt that message to Bob This will also work with encrypted and signed messages; the signature will be kept intact during re-encryption. Requires GnuPG 2.1.12. Signed-off-by: Werner Koch <[email protected]>
2017-03-22cpp: Wrap keylist_from_dataAndre Heinecke1-0/+1
* lang/cpp/data.h, lang/cpp/data.cpp (GpgME::Data::toKeys): New. -- Doing this in data instead of Context is a bit more idiomatic. But this could also be added to Context.
2017-03-21core: New API gpgme_op_set_uid_flag.Werner Koch1-2/+4
* src/gpgme.h.in (gpgme_op_set_uid_flag_start): New. (gpgme_op_set_uid_flag_start): New. * src/gpgme.def, src/libgpgme.vers: Add them. * src/genkey.c (addrevuid_start): Change arg revoke to a flag. (gpgme_op_revuid_start): Pass GENKEY_EXTRAFLAG_REVOKE for the fomer revoke parameter. (gpgme_op_revuid): Ditto. (set_uid_flag): New. (gpgme_op_set_uid_flag_start): New. (gpgme_op_set_uid_flag): New. * src/engine.h (GENKEY_EXTRAFLAG_SETPRIMARY): new. * src/engine-gpg.c (gpg_adduid): Implement that flag. * tests/run-genkey.c (main): New command --set-primary. -- GnuPG-bug-id: 2931 Signed-off-by: Werner Koch <[email protected]>
2017-03-21python: Wrap 'gpgme_op_keylist_from_data_start'.Justus Winter1-0/+1
* NEWS: Update. * lang/python/gpg/core.py (Context.keylist): New keyword argument 'source'. If given, list keys from 'source'. * lang/python/gpgme.i: Wrap the argument to 'gpgme_op_keylist_from_data_start'. * lang/python/tests/Makefile.am (py_tests): Add new test. * lang/python/tests/support.py (EphemeralContext): Do not throw an error if no agent has been started in the context. * lang/python/tests/t-keylist-from-data.py: New file. Signed-off-by: Justus Winter <[email protected]>
2017-03-21core: New encryption flag GPGME_ENCRYPT_THROW_KEYIDS.Werner Koch1-1/+2
* src/gpgme.h.in (GPGME_ENCRYPT_THROW_KEYIDS): New flag. * src/engine-gpg.c (gpg_encrypt): Implement flag (gpg_encrypt_sign): Implement flag. * tests/run-encrypt.c (main): New option --throw-keyids. -- It would be nice to also selectively hide recipients (that is gpg --hidden-recipient) but our API does not ye allow this because it is based on key objects. A possible way to implement that would be a API to set processing flags into a key but this is complicated due to the reference counting and thus the possibility that a key object is used by different context. Signed-off-by: Werner Koch <[email protected]>
2017-03-21core: New public API gpgme_op_keylist_from_data_start.Andre Heinecke1-1/+2
* src/gpgme.h.in: New API gpgme_op_keylist_from_data_start. * src/libgpgme.vers, src/gpgme.def: Add it. * src/keylist.c (gpgme_op_keylist_from_data_start): New. * src/engine-backend.h (engine_ops): Add field 'keylist_data'. Change all engines to pass NULL for it. * src/engine.c (_gpgme_engine_op_keylist_data): New. * src/engine-gpg.c (gpg_keylist_data): New. (_gpgme_engine_ops_gpg): Register gpg_keylist_data. * tests/run-keylist.c (main): New option --from-file. -- Co-authored-by: Werner Koch <[email protected]> GnuPG-bug-id: 2819
2017-03-20core,cpp: New key flag 'is_de_vs'.Werner Koch1-0/+3
* src/gpgme.h.in (_gpgme_subkey): New flag is_de_vs. * tests/run-keylist.c (main): Print that flag. * src/keylist.c (parse_pub_field18): New. (keylist_colon_handler): Parse compliance flags. * lang/cpp/src/key.cpp (Key::isDeVs): New. (Subkey::isDeVs): New. * lang/cpp/src/key.h (class Key): New method isDeVs. (class Subkey): New method isDeVs. Signed-off-by: Werner Koch <[email protected]>
2017-03-02Revert "core: Fix error types."Werner Koch1-2/+0
-- This reverts commit 6df6e01ed5a581765d245bf7303cda4497d0eb22. gpgme_error_t et al are from a time where we had no hard dependency on libgpg-error. Now libgpg-error is a required and thus it does not make sense to have these surrogates. In fact we should ventually completely remove them. Signed-off-by: Werner Koch <[email protected]>
2017-03-02cpp: Add subkey keygrip to APIAndre Heinecke1-0/+1
* lang/cpp/src/key.cpp (Subkey::keyGrip): New. * lang/cpp/src/key.h: Update accordingly.
2017-03-01cpp: Add interactor to generate keys on smartcardAndre Heinecke1-0/+3
* lang/cpp/src/editinteractor.cpp (EditInteractor::needsNoResponse): Handle new states. * lang/cpp/src/gpggencardkeyinteractor.cpp, lang/cpp/src/gpggencardkeyinteractor.h: New. * lang/cpp/src/Makefile.am: Update accordingly.
2017-02-17python: Support manipulating the TOFU policy.Justus Winter1-0/+1
* NEWS: Update. * doc/gpgme.texi: Fix typos. * lang/python/gpg/constants/__init__.py: Import new files. * lang/python/gpg/constants/tofu/__init__.py: New file. * lang/python/gpg/constants/tofu/policy.py: New file. * lang/python/gpg/core.py (Context.key_tofu_policy): New function. * lang/python/gpgme.i: Nice reprs for gpgme_tofu_info_t. * lang/python/setup.py.in: Install new package. * lang/python/tests/t-quick-key-manipulation.py: Extend test. Signed-off-by: Justus Winter <[email protected]>
2017-02-17python: Support quick key signing.Justus Winter1-0/+1
* NEWS: Update. * doc/gpgme.texi (gpgme_op_keysign): Fix the description of the 'expire' argument. * lang/python/gpg/constants/__init__.py: Import new file. * lang/python/gpg/constants/keysign.py: New file. * lang/python/gpg/core.py (Context.key_sign): New function. * lang/python/tests/Makefile.am (py_tests): Add new test. * lang/python/tests/t-quick-key-signing.py: New test. Signed-off-by: Justus Winter <[email protected]>
2017-02-16python: Support adding and revoking UIDs.Justus Winter1-0/+2
* NEWS: Update. * lang/python/gpg/core.py (Context.key_add_uid): New function. (Context.key_revoke_uid): Likewise. * lang/python/tests/Makefile.am (XTESTS): Add new test. * lang/python/tests/t-quick-key-manipulation.py: New file. Signed-off-by: Justus Winter <[email protected]>
2017-02-16python: Support quick subkey creation.Justus Winter1-0/+1
* NEWS: Update. * lang/python/gpg/core.py (Context.create_subkey): New function. * lang/python/tests/Makefile.am (XTESTS): Add new test. * lang/python/tests/t-quick-subkey-creation.py: New file. Signed-off-by: Justus Winter <[email protected]>
2017-02-16python: Support quick key creation.Justus Winter1-0/+1
* NEWS: Update. * lang/python/gpg/constants/__init__.py: Import new file. * lang/python/gpg/constants/create.py: New file. * lang/python/gpg/core.py (Context.create_key): New function. * lang/python/tests/Makefile.am (XTESTS): Add new test. * lang/python/tests/support.py (TemporaryDirectory): New class. * lang/python/tests/t-quick-key-creation.py: New file. Signed-off-by: Justus Winter <[email protected]>
2017-02-15core: Fix expiration time handling when creating keys.Justus Winter1-0/+3
* NEWS: Update. * doc/gpgme.texi (gpgme_op_createkey): Clarify the meaning of the 'expire' parameter. (GPGME_CREATE_NOEXPIRE): Document new flag. (gpgme_op_createsubkey): Clarify the meaning of the 'expire' parameter. * src/engine-gpg.c (gpg_add_algo_usage_expire): Fix handling of the expiration time. * src/gpgme.h.in (GPGME_CREATE_NOEXPIRE): New macro. -- Previously, the documentation stated that the expiration time was an absolute timestamp. However, this value was passed using the 'seconds=N' syntax to GnuPG which specifies the expiration time in seconds relative to the creation time. Fix the documentation. Furthermore, the documentation stated that using 0 results in keys that do not expire. This was communicated to GnuPG by using the implicit default. However, as of GnuPG 2.1.17, the default was changed to create keys that expire within a reasonable timespan. Fix this discrepancy by aligning the behavior with recent GnuPG versions: 0 means use a reasonable default, and introduce a flag that can be used to create keys that do not expire. Communicate this explicitly to GnuPG. Signed-off-by: Justus Winter <[email protected]>
2017-02-15core: Fix error types.Justus Winter1-0/+2
* NEWS: Update. * src/data.c (gpgme_data_set_flag): Return a 'gpgme_error_t'. * src/error.c (gpgme_strerror_r): Fix type of first argument. * src/gpgme.h.in (gpgme_strerror_r): Adapt. (gpgme_data_set_flag): Likewise. -- Fix for consistency. This should not pose problems, because typedef gpg_error_t gpgme_error_t. Signed-off-by: Justus Winter <[email protected]>
2017-02-14python: Wrap utility functions.Justus Winter1-3/+5
* NEWS: Update. * lang/python/gpg/core.py (pubkey_algo_string): New function. (pubkey_algo_name): Add docstring. (hash_algo_name): Likewise. (get_protocol_name): Likewise. (addrspec_from_uid): New function. * lang/python/gpgme.i (gpgme_pubkey_algo_string): Result must be freed. (gpgme_addrspec_from_uid): Likewise. Signed-off-by: Justus Winter <[email protected]>
2017-02-14python: Add keylist mode parameter.Justus Winter1-0/+1
* NEWS: Update. * lang/python/gpg/core.py (Context.keylist): Add 'mode' parameter. Signed-off-by: Justus Winter <[email protected]>
2017-02-14python: Add convenience functions for the home directory.Justus Winter1-0/+2
* NEWS: Update. * lang/python/gpg/core.py (Context.__init__): Add 'home_dir' argument. (__repr__): Include 'home_dir'. (Context.home_dir): New property. Signed-off-by: Justus Winter <[email protected]>
2017-02-02core: Un-deprecate gpgme_data_rewind.Werner Koch1-0/+1
* src/gpgme.h.in (gpgme_data_rewind): Un-deprecate. * src/data-compat.c (gpgme_data_rewind): Move to ... * src/data.c (gpgme_data_rewind): here. -- That function is very convenient because it is required a lot with memory streams. It also documents the intention of the caller better than gpgme_data_seek with its addition parameters and the need to map system errors. Thus it does not make sense to make it a first class citizen again. Signed-off-by: Werner Koch <[email protected]>
2017-01-12qt: Add support for stringValueList in CryptoConfAndre Heinecke1-0/+1
* lang/qt/src/Makefile.am (qgpgme_sources): Add cryptoconfig.cpp * lang/qt/src/cryptoconfig.cpp: New. * lang/qt/src/cryptoconfig.h (CryptoConfigEntry::stringValueList): New. * lang/qt/src/qgpgmenewcryptoconfig.cpp (QGpgMENewCryptoConfigEntry::stringValueList): New. * lang/qt/src/qgpgmenewcryptoconfig.h: Update accordingly. -- This is a pardigm change in cryptoconfig.h to avoid ABI breaks with each new config value we support it now has an implementation that is directly related to qgpgmenewcryptoconfig, which is now the only one.
2017-01-11cpp: Add revuid and adduid supportAndre Heinecke1-0/+11
* lang/cpp/src/context.cpp (Context::revUid, Context::startRevUid), (Context::addUid, Context::startAddUid): New. * lang/cpp/src/context.h: Declare new functions. * lang/cpp/src/key.cpp (Key::UserID::revoke) (Key::addUid): Idomatic helpers. lang/cpp/src/key.h: Declare new functions. * NEWS: Update accordingly.
2016-11-16Post release updates.Werner Koch1-0/+4
--
2016-11-16Release 1.8.0gpgme-1.8.0Werner Koch1-1/+17
* configure.ac: Set version to 1.8.0. Set LT version C28/A17/RO. Set CPP LT version to C9/A3/R0. Set Qt LT version to C8/A1/R0. -- Signed-off-by: Werner Koch <[email protected]>
2016-11-15core: Add public function gpgme_get_ctx_flag.Werner Koch1-0/+1
* src/gpgme.h.in (gpgme_get_ctx_flag): New. * src/gpgme.c (gpgme_set_ctx_flag): Move down the file and add a trace statement. (gpgme_get_ctx_flag): New. * src/gpgme.def, src/libgpgme.vers: Add new interface. Signed-off-by: Werner Koch <[email protected]>
2016-11-14qt: Add API to get the context for a JobAndre Heinecke1-0/+3
* lang/qt/src/job.cpp, lang/qt/src/job.h (Job::context): New. * lang/qt/src/threadedjobmixin.cpp (ThreadedJobMixin::~ThreadedJobMixin): New. Unregister context. (ThreadedJobMixin::lateInitialization): Register context. * NEWS: Update for cpp and qt. -- The global map hack is necessary because the job class does not know about the context which is held in threadedjobmixin. Adding a virtual function in Job would be an ABI break which I'd like to avoid at this point. Although QGpgME's API will need a big ABI break to make it ABI maintainable. The virtual jobs -> implementation classes are nearly unmaintainable ABI wise. The context is exposed to provide more flexibility to users, e.g. to add a passphrase callback or to set the sender in a context.
2016-11-04cpp: Add API for swdb queriesAndre Heinecke1-0/+1
* lang/cpp/src/swdbresult.cpp, lang/cpp/src/swdbresult.h (SwdbResult): New. * lang/cpp/src/Makefile.am: Update accordingly.
2016-11-04cpp: Add more EngineInfo::Version ctorsAndre Heinecke1-0/+2
* lang/cpp/src/engineinfo.h (EngineInfo::Version::Version(const char*)), (EngineInfo::Version::Version()): New.
2016-11-03core: Add gpgme_op_query_swdb and helper.Werner Koch1-0/+3
* src/gpgme.h.in (gpgme_query_swdb_result_t): New. (gpgme_op_query_swdb): New. (gpgme_op_query_swdb_result): New. * src/libgpgme.vers, src/gpgme.def: Add the two new functions. * src/queryswdb.c: New. * src/Makefile.am (main_sources): Add new file. * src/context.h (OPDATA_QUERY_SWDB): New. * src/engine-backend.h (struct engine_ops): Add field 'query_swdb'. Adjust all initializer. * src/engine.c (_gpgme_engine_op_query_swdb): New. * src/engine-gpgconf.c (parse_swdb_line): New. (gpgconf_query_swdb): New. (_gpgme_engine_ops_gpgconf): Register that function. * src/util.h (GPG_ERR_TOO_OLD): Define for older libgpg-error. (GPG_ERR_ENGINE_TOO_OLD): Ditto. * tests/run-swdb.c: New. * tests/Makefile.am (noinst_PROGRAMS): Add new debug tool. Signed-off-by: Werner Koch <[email protected]>
2016-11-01qt: Add Distinguished Name parser from libkleoAndre Heinecke1-0/+4
* lang/qt/src/dn.cpp (DN, DN::Attribute): New public API. * lang/qt/src/dn.h: New. * lang/qt/src/Makefile.am: Update accordingly. -- This is a general useful API to work with X509 distinguished names and is useful when doing CMS with GpgME. Adding this class from libkleo allows kmails messagelib to avoid any KDE UI Frameworks and so can be used more versatile in the future. This class can be combined with libkleos DNAttributeMapper to have the same bevavior as before in libkleo when using DN::prettyDN calls can be converted from: Kleo::DN(uid).prettyDN(); to: QGpgME::DN dn(uid); uid.setAttributeOrder( Kleo::DNAttributeMapper::instance()->attributeOrder()); dn.prettyDN();