aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* qt: Fix IODeviceDataProvider with ProcessAndre Heinecke2017-11-141-1/+5
| | | | | | | | | * lang/qt/src/dataprovider.cpp (blocking_read): Keep reading if process is not atEnd. -- This fixes a regression in Kleopatra that uses this dataprovider to chain the gpgtar process to the encryption / signing.
* core: use getdents64 syscall on linux instead of getdents.Daniel Kahn Gillmor2017-10-121-7/+8
| | | | | | | | | | | | * src/posix-io.c (get_max_fds): use getdents64 instead of getdents. -- getdents64 was introduced in linux 2.4, so it should be widely available. some Linux architectures which post-date 2.4 (e.g. arm64) appear to not have getdents at all, so it's probably better to use the more modern interface. Signed-off-by: Daniel Kahn Gillmor <[email protected]>
* core: Allow disabling the use of SYS_getdents for Linux.Werner Koch2017-10-042-6/+29
| | | | | | | | * configure.ac (USE_LINUX_GETDENTS): New ac_define. Add option --disable-linux-getdents. * src/posix-io.c: Make use of USE_LINUX_GETDENTS. Signed-off-by: Werner Koch <[email protected]>
* core: Restore get_max_fds optimization on LinuxColin Watson2017-10-041-33/+66
| | | | | | | | | | | | | | | | | * src/posix-io.c (get_max_fds): Restore Linux optimization, this time using open/getdents/close rather than opendir/readdir/closedir. -- opendir/readdir/closedir may allocate/free memory, and aren't required to do so in an async-signal-safe way. On the other hand, opening /proc/self/fd directly and iterating over it using getdents is safe. (getdents is not strictly speaking documented to be async-signal-safe because it's not in POSIX. However, the Linux implementation is essentially just a souped-up read. Python >= 3.2.3 makes the same assumption.) Signed-off-by: Colin Watson <[email protected]>
* Register DCO for Colin Watson.Werner Koch2017-10-041-0/+2
| | | | --
* qt: Add test for version infoAndre Heinecke2017-09-041-0/+13
| | | | | | | * lang/qt/tests/t-various.cpp (TestVarious::testVersion): New. -- If it's not tested it does not work ;-)
* cpp: Fix version info comparisonAndre Heinecke2017-09-042-9/+19
| | | | | | | | | | | * 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.
* core: New context flag "auto-key-retrieve"Werner Koch2017-08-2413-9/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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]>
* Set next version to 1.10.0Werner Koch2017-08-243-17/+17
| | | | --
* core: New public enum gpgme_keyorg_t.Werner Koch2017-08-242-3/+37
| | | | | | | | | | | | * src/gpgme.h.in (gpgme_keyorg_t): New. * src/keylist.c (parse_keyorg): New. (keylist_colon_handler): Set key->ORIGIN. -- This finally set the key origin value form data supplied by recent gpg versions. Signed-off-by: Werner Koch <[email protected]>
* gpgconf: Add more comments.Marcus Brinkmann2017-08-241-1/+7
| | | | | | | | * src/engine-gpgconf.c (gpgconf_config_dir_cb, gpgconf_conf_dir): Add comments. Signed-off-by: Marcus Brinkmann <[email protected]> GnuPG-bug-id: 3018
* Fix a couple of bugs pointed out by clang compiler warnings.Marcus Brinkmann2017-08-232-2/+2
| | | | | | | * src/engine-gpgconf.c (gpgconf_config_dir_cb): Fix cast. * src/key.c (_gpgme_key_add_sig): Fix pointer reference. Signed-off-by: Marcus Brinkmann <[email protected]>
* python: Support parallel build in testsAlon Bar-Lev2017-08-211-1/+1
| | | | | | | * lang/python/tests/Makefile.am: Depend xcheck with all which was lost due to the check hack. Signed-off-by: Alon Bar-Lev <[email protected]>
* python: Improve keylist test.Justus Winter2017-08-211-0/+3
| | | | | | * lang/python/tests/t-keylist.py: Check a keylist matching no keys. Signed-off-by: Justus Winter <[email protected]>
* doc: Add version information.Marcus Brinkmann2017-08-161-1/+320
| | | | | | | | * doc/gpgme.texi (since): New macro. Use it to add version information to those APIs that are mentioned in the NEWS file. Signed-off-by: Marcus Brinkmann <[email protected]> GnuPG-bug-id: 3137
* doc: Clarify import keys operation further.Marcus Brinkmann2017-08-161-2/+8
| | | | | | | * doc/gpgme.texi (gpgme_op_import_keys): Further clarifications. Signed-off-by: Marcus Brinkmann <[email protected]> GnuPG-bug-id: 3215
* gpgconf: Fix some warnings.Marcus Brinkmann2017-08-152-23/+32
| | | | | | | | * tests/gpg/t-gpgconf.c (main): Fix warnings. * src/engine-gpgconf.c (struct gpgconf_config_dir_s): New struct. (gpgconf_config_dir_cb, gpgconf_conf_dir) Use it to fix warning. Signed-off-by: Marcus Brinkmann <[email protected]>
* gpgconf: Fix symbol export.Marcus Brinkmann2017-08-151-1/+1
| | | | | | | | | * gpgme.def: Fix last change. (gpgme_op_conf_save): Replace duplicate from c&p ... (gpgme_op_conf_dir): ... with this. Signed-off-by: Marcus Brinkmann <[email protected]> Fixes-commit: 9cd2b58dfb2c21cce64520cf4c726859b583d14e
* NEWS: Add missing entry.Marcus Brinkmann2017-08-151-0/+1
|
* gpgconf: Add access to --list-dirs for non-default engine.Marcus Brinkmann2017-08-1515-0/+111
| | | | | | | | | | | | | | | | | | | | | | | * src/engine-assuan.c (_gpgme_engine_ops_assuan): Add conf_dir. * src/engine-g13.c (_gpgme_engine_ops_g13): Likewise. * src/engine-gpg.c (_gpgme_engine_ops_gpg): Likewise. * src/engine-gpgsm.c (_gpgme_engine_ops_gpgsm): Likewise. * src/engine-spawn.c (_gpgme_engine_ops_spawn): Likewise. * src/engine-uiserver.c (_gpgme_engine_ops_uiserver): Likewise. * src/engine-backend.h (struct engine_ops): Likewise. * src/engine-gpgconf.c (gpgconf_config_dir_cb, gpgconf_conf_dir): New functions. (struct engine_ops): Add gpgconf_conf_dir. * src/engine.c (_gpgme_engine_op_conf_dir): New function. * src/engine.h (_gpgme_engine_op_conf_dir): New prototype. * src/gpgconf.c (gpgme_op_conf_dir): New function. * src/gpgme.def (gpgme_op_conf_save): New symbol. * src/gpgme.h.in (gpgme_op_conf_dir): New prototype. * src/libgpgme.vers (gpgme_op_conf_dir): New symbol. * tests/gpg/t-gpgconf.c (main): Test gpgme_op_conf_dir. Signed-off-by: Marcus Brinkmann <[email protected]> GnuPG-bug-id: 3018
* g10: Add new delete operations that allow more flags.Marcus Brinkmann2017-08-1111-22/+110
| | | | | | | | | | | | | | | | | | | * 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
* doc: Clarify import keys operation.Marcus Brinkmann2017-08-102-22/+19
| | | | | | | | | * doc/gpgme.texi (gpgme_op_import_start): Fix grammar. (gpgme_op_import_keys): Clarify some wording and fix result. * src/import.c (gpgme_op_import_keys): Clarify comment. Signed-off-by: Marcus Brinkmann <[email protected]> GnuPG-bug-id: 3215
* doc: Add more tofu documentation.Marcus Brinkmann2017-08-101-0/+72
| | | | | | | | * doc/gpgme.texi (gpgme_tofu_info_t): Document structure. (gpgme_sigsum_t): Document GPGME_SIGSUM_TOFU_CONFLICT. Signed-off-by: Marcus Brinkmann <[email protected]> GnuPG-bug-id: 2816
* core: Fix status parsing for decrypt + verifyAndre Heinecke2017-07-271-3/+15
| | | | | | | | | | * src/decrypt.c (parse_status_error): Don't modify args. -- Otherwise chained status handlers will not see the full args which resulted in a parse error in the verify status handler. GnuPG-Bug-Id: T3310
* cpp: Fix Key::isDeVs for subkeysAndre Heinecke2017-07-261-1/+12
| | | | | | | * lang/cpp/src/key.cpp (Key::isDeVs): Check all subkeys. -- Previosly only the primary key was checked and not all subkeys.
* tests: Fix distcheck.Justus Winter2017-07-131-0/+1
| | | | | | | * tests/start-stop-agent: Remove backup file. Fixes-commit: 9cd2b58dfb2c21cce64520cf4c726859b583d14e Signed-off-by: Justus Winter <[email protected]>
* tests: Fix blunder.Justus Winter2017-07-131-1/+1
| | | | | | -- Fixes-commit: 9cd2b58dfb2c21cce64520cf4c726859b583d14e Signed-off-by: Justus Winter <[email protected]>
* tests: Make agent spawning more robust.Justus Winter2017-07-132-0/+13
| | | | | | | | | | | | * tests/gpgsm/Makefile.am (gpgsm.conf): Add agent-program directive. * tests/start-stop-agent: Update agent-program directive. -- Update the 'agent-program' configuration directive to point to the same agent that we are starting. Previously, it was possible that a different agent was started if 'make check' was run with a different PATH. Signed-off-by: Justus Winter <[email protected]>
* Sync 'autogen.sh'.Justus Winter2017-07-131-20/+116
| | | | | -- Signed-off-by: Justus Winter <[email protected]>
* tests: Fix printf compiler warning for an error case.Werner Koch2017-07-121-1/+1
| | | | | | * tests/gpg/t-keylist.c (main): Cast DIM to int. Signed-off-by: Werner Koch <[email protected]>
* core: Return NO_SECKEY error code on decryptionWerner Koch2017-07-122-3/+12
| | | | | | | | | | | | | | | * src/decrypt.c (op_data_t): Add flag any_no_seckey. (_gpgme_decrypt_status_handler): Consult that flag. (_gpgme_decrypt_status_handler): Set that flag. -- The NO_SECKEY is emitted instead of an "S ERROR pkdecrypt_failed" if gpg knowns that a key has been encrypted to that key (cf. "S ENC_TO"). it is not fool proffof but in the majority of cases we can provide a better error message than just DECRYPTION_FAILED. GnuPG-bug-id: 3270 Signed-off-by: Werner Koch <[email protected]>
* core: Return CANCELED and BAD_PASSPHRASE error code on decryption.Werner Koch2017-07-121-1/+32
| | | | | | | | | | | | | * src/decrypt.c (op_data_t): Add field pkdecrypt_failed. (_gpgme_decrypt_status_handler): Consult new field. (parse_status_error): Handle some error codes. -- The idea is to return only a limited set of error codes because a user won't be able to understand the more esoteric codes. GnuPG-bug-id: 3270 Signed-off-by: Werner Koch <[email protected]>
* core: Simplify parsing of STATUS_ERROR in decrypt.cWerner Koch2017-07-122-42/+40
| | | | | | | | * src/decrypt.c (_gpgme_decrypt_status_handler): Factor some code out to ... (parse_status_error): new. Modernize parsing. Signed-off-by: Werner Koch <[email protected]>
* doc: Add list of copyright olders to AUTHORS.Werner Koch2017-07-121-0/+23
| | | | --
* python: Improve error handling.Justus Winter2017-07-113-65/+153
| | | | | | | | | | | | | | | | | | | | | | | | | | | * 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]>
* Add isDeVs to ostream operatorAndre Heinecke2017-07-102-0/+2
| | | | | | * lang/cpp/src/decryptionresult.cpp, lang/cpp/src/verificationresult.cpp: Extend ostream operator to include isDeVs.
* Fix some shadow warningsAndre Heinecke2017-07-101-4/+4
| | | | | -- Warnings in headers hurt downstream.
* cpp: Fix CMake config library name for GPGMEAndre Heinecke2017-06-121-1/+1
| | | | | | | | * lang/cpp/src/GpgmeppConfig.cmake.in.in: The link library is of course also dynamic. -- GnuPG-Bug-Id: T3181
* Add flag 'is_de_vs' to decryption results and signatures.Justus Winter2017-06-0112-24/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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]>
* core: Sort the status table.Justus Winter2017-05-301-10/+10
| | | | | -- Signed-off-by: Justus Winter <[email protected]>
* python: Fix build in certain cases.Justus Winter2017-05-181-1/+1
| | | | | | | | | | | * lang/python/setup.py.in: Prepend the Python build dir to the list of include directories so that it takes precedence over any other include directory. -- Fixes the build in case an older 'gpgme.h' is installed and is picked up by the compiler when compiling the Python module. Signed-off-by: Justus Winter <[email protected]>
* tests: Remove remnants of 'check-local'.Justus Winter2017-05-101-7/+0
| | | | | | | | | | | * tests/gpgsm/Makefile.am (check-local): Drop rule and the dependency on it. -- Previously, the test environment was created during 'make check'. Nowadays we create it using 'BUILT_SOURCES' during 'make all'. Drop remnant of the previous method. Signed-off-by: Justus Winter <[email protected]>
* python: Fix test environment creation.Justus Winter2017-05-101-1/+0
| | | | | | | * lang/python/tests/Makefile.am (pubring-stamp): Do not depend on the configuration files, this can trigger superfluous rebuilds. Signed-off-by: Justus Winter <[email protected]>
* tests: Make sure to kill all previously running daemons.Justus Winter2017-05-104-0/+4
| | | | | | | | | | | | | | | | * lang/python/tests/Makefile.am: Kill all previously running daemons before creating the private key store. * lang/qt/tests/Makefile.am: Likewise. * tests/gpg/Makefile.am: Likewise. * tests/gpgsm/Makefile.am: Likewise. -- Now that the daemons sockets are no longer created in the GNUPGHOME, we cannot rely on cleaning the build directory to make sure they are shut down. Therefore, we explicitly kill any running daemons when creating the test environment. Signed-off-by: Justus Winter <[email protected]>
* tests: Harmonize test suites.Justus Winter2017-05-103-5/+13
| | | | | | | | | | | | * lang/python/tests/Makefile.am: Create test environment as part of 'make all'. * tests/gpg/Makefile.am: Make sure the private keystore is created first. * tests/gpgsm/Makefile.am: Create test environment as part of 'make all'. Make sure the private keystore is created first. Signed-off-by: Justus Winter <[email protected]>
* qt: Stop agent on clean.Justus Winter2017-05-101-0/+1
| | | | | | * lang/qt/tests/Makefile.am (clean-local): Stop agent. Signed-off-by: Justus Winter <[email protected]>
* qt: Add a missing include <functional>Andre Heinecke2017-05-101-0/+1
| | | | | | | | | | | * lang/qt/src/qgpgmenewcryptoconfig.cpp: Include functional. -- This is intended to fix compilation against the c++ stdlib from Gentoo / GCC 7. Patch provided by Martin Väth. GnuPG-Bug-Id: T3151
* qt: Undeprecate API that I find usefulAndre Heinecke2017-05-105-5/+5
| | | | | | | | | | | | | | | | * lang/qt/src/decryptjob.h, lang/qt/src/decryptverifyjob.h, lang/qt/src/signencryptjob.h, lang/qt/src/verifydetachedjob.h, lang/qt/src/verifyopaquejob.h: Undeprecate ByteArray based API. -- While an IODevice may be more performant the ByteArray API is a very easy way to get started with QGpgME as it allows you basically to encrypt / decrypt any QString. This also fixes a ton of deprecation warnings in KDE where this API is used all over the place.
* qt, tests: Don't use internal APIAndre Heinecke2017-05-102-17/+19
| | | | | | | | * lang/qt/tests/t-encrypt.cpp, lang/qt/tests/t-tofuinfo.cpp: Only use exported API. -- With the Job::Context hack we no longer need to use internal API.
* core: Don't split gpgconf strings on commaAndre Heinecke2017-05-031-2/+3
| | | | | | | | | | * src/engine-gpgconf.c (gpgconf_parse_option): Don't split strings on comma. -- This only affects values where the main type is string. Values with the alt_type string but another main type are still split to keep lists (e.g. groups) working.