aboutsummaryrefslogtreecommitdiffstats
path: root/tests (follow)
Commit message (Collapse)AuthorAgeFilesLines
* 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]>
* 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]>
* 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]>
* tests: Make sure to kill all previously running daemons.Justus Winter2017-05-102-0/+2
| | | | | | | | | | | | | | | | * 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-102-4/+9
| | | | | | | | | | | | * 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]>
* Change copyright from Intevation to BSIAndre Heinecke2017-04-254-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lang/cpp/src/gpggencardkeyinteractor.cpp, lang/cpp/src/gpggencardkeyinteractor.h, lang/cpp/src/gpgmepp_export.h, lang/cpp/src/swdbresult.cpp, lang/cpp/src/swdbresult.h, lang/cpp/src/tofuinfo.cpp, lang/cpp/src/tofuinfo.h, lang/qt/src/abstractimportjob.h, lang/qt/src/adduseridjob.h, lang/qt/src/changeexpiryjob.h, lang/qt/src/changeownertrustjob.h, lang/qt/src/changepasswdjob.h, lang/qt/src/cryptoconfig.cpp, lang/qt/src/cryptoconfig.h, lang/qt/src/dataprovider.cpp, lang/qt/src/dataprovider.h, lang/qt/src/decryptjob.h, lang/qt/src/decryptverifyjob.h, lang/qt/src/deletejob.h, lang/qt/src/dn.cpp, lang/qt/src/dn.h, lang/qt/src/downloadjob.h, lang/qt/src/encryptjob.h, lang/qt/src/exportjob.h, lang/qt/src/hierarchicalkeylistjob.h, lang/qt/src/importfromkeyserverjob.h, lang/qt/src/importjob.h, lang/qt/src/job.cpp, lang/qt/src/job.h, lang/qt/src/keyformailboxjob.h, lang/qt/src/keygenerationjob.h, lang/qt/src/keylistjob.h, lang/qt/src/listallkeysjob.h, lang/qt/src/multideletejob.h, lang/qt/src/protocol.h, lang/qt/src/protocol_p.h, lang/qt/src/qgpgme_export.h, lang/qt/src/qgpgmeadduseridjob.cpp, lang/qt/src/qgpgmeadduseridjob.h, lang/qt/src/qgpgmebackend.cpp, lang/qt/src/qgpgmebackend.h, lang/qt/src/qgpgmechangeexpiryjob.cpp, lang/qt/src/qgpgmechangeexpiryjob.h, lang/qt/src/qgpgmechangeownertrustjob.cpp, lang/qt/src/qgpgmechangeownertrustjob.h, lang/qt/src/qgpgmechangepasswdjob.cpp, lang/qt/src/qgpgmechangepasswdjob.h, lang/qt/src/qgpgmedecryptjob.cpp, lang/qt/src/qgpgmedecryptjob.h, lang/qt/src/qgpgmedecryptverifyjob.cpp, lang/qt/src/qgpgmedecryptverifyjob.h, lang/qt/src/qgpgmedeletejob.cpp, lang/qt/src/qgpgmedeletejob.h, lang/qt/src/qgpgmedownloadjob.cpp, lang/qt/src/qgpgmedownloadjob.h, lang/qt/src/qgpgmeencryptjob.cpp, lang/qt/src/qgpgmeencryptjob.h, lang/qt/src/qgpgmeexportjob.cpp, lang/qt/src/qgpgmeexportjob.h, lang/qt/src/qgpgmeimportfromkeyserverjob.cpp, lang/qt/src/qgpgmeimportfromkeyserverjob.h, lang/qt/src/qgpgmeimportjob.cpp, lang/qt/src/qgpgmeimportjob.h, lang/qt/src/qgpgmekeyformailboxjob.cpp, lang/qt/src/qgpgmekeyformailboxjob.h, lang/qt/src/qgpgmekeygenerationjob.cpp, lang/qt/src/qgpgmekeygenerationjob.h, lang/qt/src/qgpgmekeylistjob.cpp, lang/qt/src/qgpgmekeylistjob.h, lang/qt/src/qgpgmelistallkeysjob.cpp, lang/qt/src/qgpgmelistallkeysjob.h, lang/qt/src/qgpgmenewcryptoconfig.cpp, lang/qt/src/qgpgmenewcryptoconfig.h, lang/qt/src/qgpgmerefreshkeysjob.cpp, lang/qt/src/qgpgmerefreshkeysjob.h, lang/qt/src/qgpgmesecretkeyexportjob.cpp, lang/qt/src/qgpgmesecretkeyexportjob.h, lang/qt/src/qgpgmesignencryptjob.cpp, lang/qt/src/qgpgmesignencryptjob.h, lang/qt/src/qgpgmesignjob.cpp, lang/qt/src/qgpgmesignjob.h, lang/qt/src/qgpgmesignkeyjob.cpp, lang/qt/src/qgpgmesignkeyjob.h, lang/qt/src/qgpgmetofupolicyjob.cpp, lang/qt/src/qgpgmetofupolicyjob.h, lang/qt/src/qgpgmeverifydetachedjob.cpp, lang/qt/src/qgpgmeverifydetachedjob.h, lang/qt/src/qgpgmeverifyopaquejob.cpp, lang/qt/src/qgpgmeverifyopaquejob.h, lang/qt/src/qgpgmewkspublishjob.cpp, lang/qt/src/qgpgmewkspublishjob.h, lang/qt/src/refreshkeysjob.h, lang/qt/src/signencryptjob.h, lang/qt/src/signjob.h, lang/qt/src/signkeyjob.h, lang/qt/src/specialjob.h, lang/qt/src/threadedjobmixin.cpp, lang/qt/src/threadedjobmixin.h, lang/qt/src/tofupolicyjob.h, lang/qt/src/verifydetachedjob.h, lang/qt/src/verifyopaquejob.h, lang/qt/src/wkspublishjob.h, lang/qt/tests/run-keyformailboxjob.cpp, lang/qt/tests/t-config.cpp, lang/qt/tests/t-encrypt.cpp, lang/qt/tests/t-keylist.cpp, lang/qt/tests/t-keylocate.cpp, lang/qt/tests/t-ownertrust.cpp, lang/qt/tests/t-support.cpp, lang/qt/tests/t-support.h, lang/qt/tests/t-tofuinfo.cpp, lang/qt/tests/t-various.cpp, lang/qt/tests/t-verify.cpp, lang/qt/tests/t-wkspublish.cpp, tests/gpg/t-encrypt-mixed.c, tests/gpg/t-thread-keylist-verify.c, tests/gpg/t-thread-keylist.c, tests/run-decrypt.c: Change Intevation GmbH copyright to BSI. -- This should make it more transparent where the BSI is the actual copyright holder as the code was mostly developed as part of a development contract.
* tests: Update encrypted sample files.Justus Winter2017-04-242-25/+22
| | | | | | | | | | * tests/gpg/cipher-1.asc: Update file. * tests/gpg/cipher-2.asc: Likewise. -- Convert the plaintext to UTF-8 and re-create the encrypted file. Fixes-commit: a11450eb048df79a3f2b00ebef6d7cab07ad5054 Signed-off-by: Justus Winter <[email protected]>
* tests: Do not use check-local magic as dependencyAlon Bar-Lev2017-04-101-7/+2
| | | | | | | | | | | | | | | | | | | | * tests/gpg/Makefile.am: Use BUILT_SOURCES instead of check-local and initial.test. * lang/qt/tests/Makefile.am: Ditto. -- This fixes "make dist" failure when source tree is clean: git clean -dxf autoreconf -ivf ./configure make dist BUILT_SOURCES should be used when file as generated without explicit dependency. The check-local is all-am dependency, this means that it will be resolved also in "make dist". Signed-off-by: Alon Bar-Lev <[email protected]>
* tests: Run the threading tests only on UNIX.Justus Winter2017-03-281-3/+3
| | | | | | | | | | | * tests/gpg/Makefile.am (tests_unix): Add 't-thread-keylist' and 't-thread-keylist-verify'. (c_tests): Drop them here. -- The tests use pthreads and we suspect problems with MinGW's wrappers. Signed-off-by: Justus Winter <[email protected]>
* tests: Make error message more helpful.Justus Winter2017-03-281-1/+2
| | | | | | | * tests/gpg/t-keylist.c (main): Print number of returned and expected keys. Signed-off-by: Justus Winter <[email protected]>
* core: Prepare for new key listing data send by gpg.Werner Koch2017-03-281-0/+2
| | | | | | | | | | | | * 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]>
* core: New flags GPGME_DECRYPT_UNWRAP and GPGME_ENCRYPT_WRAP.Werner Koch2017-03-242-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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]>
* core: New API gpgme_op_set_uid_flag.Werner Koch2017-03-211-21/+48
| | | | | | | | | | | | | | | | | | | | | * 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]>
* core: Extend gpgme_get_dirinfo to return the gpg-wks-client name.Werner Koch2017-03-211-1/+3
| | | | | | | | | * src/dirinfo.c (WANT_GPG_WKS_CLIENT_NAME): New const. (struct dirinfo): New field 'gpg_wks_client_name'. (get_gpgconf_item): Build it on demand. (gpgme_get_dirinfo): New value "gpg-wks-client-name" for WHAT. Signed-off-by: Werner Koch <[email protected]>
* core: New encryption flag GPGME_ENCRYPT_THROW_KEYIDS.Werner Koch2017-03-211-0/+6
| | | | | | | | | | | | | | | | | | * 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]>
* core: New public API gpgme_op_keylist_from_data_start.Andre Heinecke2017-03-211-2/+22
| | | | | | | | | | | | | | | | | * 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
* core,cpp: New key flag 'is_de_vs'.Werner Koch2017-03-201-4/+6
| | | | | | | | | | | | | | * 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]>
* tests: Fix distcheck.Justus Winter2017-03-201-1/+2
| | | | | | | | * tests/start-stop-agent: Do not create 'gpg-agent.conf' if it does not exist. Fixes-commit: 16b202d9999591b71fb8bb49f6db10ef96d4cbe8 Signed-off-by: Justus Winter <[email protected]>
* tests: Use 'gpg-agent --allow-loopback-pinentry' if applicable.Justus Winter2017-03-201-0/+8
| | | | | | | | | | | * lang/python/tests/Makefile.am (gpg-agent.conf): Do not hard-code the option. This breaks gpg-agent from GnuPG 2.0. * tests/start-stop-agent: Rather, check if the option is supported and add it to the configuration if it is. GnuPG-bug-id: 3008 Fixes-commit: bbf19124bbec9eb6298cef2914baae7ac74382fe Signed-off-by: Justus Winter <[email protected]>
* core: Add new context flag "redraw".Werner Koch2017-01-311-0/+4
| | | | | | | | | | * src/context.h (struct gpgme_context): New field 'redraw_suggested'. * src/op-support.c (_gpgme_op_reset): Clear REDRAW_SUGGESTED. * src/progress.c (_gpgme_progress_status_handler): Set REDRAW_SUGGESTED. * src/gpgme.c (gpgme_set_ctx_flag, gpgme_get_ctx_flag): Add "redraw". * tests/run-sign.c (main): Use it. Signed-off-by: Werner Koch <[email protected]>
* tests: Reduce iterations / threadsAndre Heinecke2017-01-303-3/+3
| | | | | | | | | | | | * tests/gpg/t-gpgconf.c (main): Reduce iterations to 10. * tests/gpg/t-thread-keylist-verify.c, tests/gpg/t-thread-keylist.c (THREAD_COUNT): Reduce to 10. -- While these tests tested for race conditions a smaller number of iteration should still show problems if they are run on multiple systems and regulary. While the 100 Thread count in the t-thread tests could lead to resource problems.
* tests: Use --debug-quick-random for testsAndre Heinecke2017-01-251-5/+7
| | | | | | | | | | * tests/start-stop-agent: Don't autostart agent on --stop and running check. Use --debug-quick-random when starting. -- This should speed up the tests especially on low entropy systems. Possibly fixing a hang on pythons op_genkey test in the Launchpad build enviorment (see launchpad issue 1655298)
* tests: Add safeguards against nullptr derefAndre Heinecke2017-01-171-6/+9
| | | | * t-gpgconf.c (main): Test some values before dereferencing them.
* tests: Fix distcheck.Justus Winter2017-01-161-1/+1
| | | | | | | * tests/gpg/Makefile.am (CLEANFILES): Remove gpgconf backups. Fixes-commit: ea7bb62f5d981615847528b3ce53be9cc4d741a7 Signed-off-by: Justus Winter <[email protected]>
* tests: Improve the gpgconf test.Justus Winter2017-01-122-53/+129
| | | | | | | | | | | | * tests/gpg/t-gpgconf.c: Include support functions. (fail_if_err): Remove macro. (init_gpgme): Remove function. (lookup): New function. (main): Update some values and verify that the changes are applied. * tests/gpg/t-support.h (test): New assert-like macro. GnuPG-bug-id: 2881 Signed-off-by: Justus Winter <[email protected]>
* tests: Enable gpgconf test.Justus Winter2017-01-121-4/+0
| | | | | | -- Fixes: 02ba35c1b6a2cbb3361b2f2ad507c53564b2be0b Signed-off-by: Justus Winter <[email protected]>
* tests: Remove tofu.db.Justus Winter2016-11-251-1/+2
| | | | | | | * lang/python/Makefile.am (CLEANFILES): Add 'tofu.db'. * tests/gpg/Makefile.am (CLEANFILES): Likewise. Signed-off-by: Justus Winter <[email protected]>
* doc: Replace http: by https: in core source files.Werner Koch2016-11-1618-18/+18
| | | | | | -- Signed-off-by: Werner Koch <[email protected]>
* core: Do not leak the override session key to ps(1).Werner Koch2016-11-161-1/+2
| | | | | | | | | | | | | | * src/engine-gpg.c (struct engine_gpg): New field override_session_key. (gpg_release): Free that field. (gpg_decrypt): With gnupg 2.1.16 use --override-session-key-fd. * tests/run-decrypt.c (main): Fix setting over the override key. -- Note that this works only with gnupg 2.1.16 and later. Signed-off-by: Werner Koch <[email protected]>
* doc,tests: Require use of ctx_flag before use of session_key.Daniel Kahn Gillmor2016-11-161-6/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | * doc/gpgme.texi: Document requirements of verifying that it is OK to use session_key. * tests/run-decrypt.c: Ensure that we fail if we're unable to access the session key, so that we do not violate the guidance above. Signed-off-by: Daniel Kahn Gillmor <[email protected]> Changed the description -@code{gpgme_set_ctx_flag (ctx, "export-session-key")} returns -@code{GPG_ERR_NO_ERROR} or @code{gpgme_get_ctx_flag (ctx, -"export-session-key")} returns @code{"1"}. +@code{gpgme_set_ctx_flag (ctx, "export-session-key")} returns success +or @code{gpgme_get_ctx_flag (ctx, "export-session-key")} returns true +(non-empty string). to get gpgme_get_ctx_flag for boolean values in sync with its own description. Note that I don't agree with the above suggestion but it does not really harm to have it in the man page. Signed-off-by: Werner Koch <[email protected]>
* core: Implement context flag "override-session-key".Werner Koch2016-11-151-1/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/gpgme.c (gpgme_set_ctx_flag): Add flags "export-session-key" and "override-session-key". (gpgme_get_ctx_flag): Ditto. (gpgme_set_export_session_keys): Remove. (gpgme_get_export_session_keys): Remove. * src/gpgme.def, src/libgpgme.vers: Remove them. * src/context.h (struct gpgme_context): Add field override_session_key. * src/decrypt-verify.c (decrypt_verify_start): Pass override_session_key value to the engine. * src/decrypt.c (decrypt_start): Ditto. * src/engine.c (_gpgme_engine_op_decrypt): Ditto. (_gpgme_engine_op_decrypt_verify): Ditto. * src/engine-backend.h (struct engine_ops): Extend DECRYPT and DECRYPT_VERIFY_START with override_session_key. * src/engine-uiserver.c (_uiserver_decrypt): Add stub arg override_session_key. (uiserver_decrypt): Ditto. (uiserver_decrypt_verify): Ditto. * src/engine-gpgsm.c (gpgsm_decrypt): Ditto. * src/engine-gpg.c (gpg_decrypt): Add arg override_session_key and set corresponding gpg option. * tests/run-decrypt.c (print_result): Print the session key if available. (main): Add options --export-session-key and --override-session-key. -- To keep the number of context manipulation functions at bay, this patches removes the just added gpgme_set_export_session_keys and gpgme_get_export_session_keys by flags for the generic context function. The patch also implements the --override-session-key feature. GnuPG-bug-id: 2754 Signed-off-by: Werner Koch <[email protected]>
* core: Add public function gpgme_get_ctx_flag.Werner Koch2016-11-151-0/+22
| | | | | | | | | | * 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]>
* tests,python: Atomic directory creationAlon Bar-Lev2016-11-112-2/+2
| | | | | | | | | | | | | | | * lang/python/tests/Makefile.am: Use MIDIR_P. * tests/gpg/Makefile.am: Ditto. * tests/gpgsm/Makefile.am: Ditto. -- Solves race in parallel build when mkdir fails if directory exists. Signed-off-by: Alon Bar-Lev <[email protected]> - Tweaked the ChangeLog Signed-off-by: Werner Koch <[email protected]>
* tests: Reduce thread count in new thread testsAndre Heinecke2016-11-102-2/+2
| | | | | | | | | | * gpg/t-thread-keylist-verify.c, gpg/t-thread-keylist.c: Reduce threads to 100 -- Due to the limit of FD_SETSIZE the number of parallel threads is limited. So some systems run into this problem when running the testsuite.
* tests: Fix additional memleaks in thread testsAndre Heinecke2016-11-102-2/+10
| | | | | | | * tests/gpg/t-thread-keylist-verify.c (start_verify): Release data. (start_keylist): Unref keys. * tests/gpg/t-thread-keylist.c (start_keylist): Unref keys.
* tests: Improve new thread testsAndre Heinecke2016-11-102-0/+14
| | | | | | | | | | * tests/gpg/t-thread-keylist-verify.c (start_keylist): Mark arg as unused. Release context. (start_verify): Ditto. (main): Mark args as unused. * tests/gpg/t-thread-keylist.c (start_keylist): Mark arg as unused. Release context. (main): Mark args as unused.
* core: Use gpgrt locking for thread safenessAndre Heinecke2016-11-103-3/+211
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac: Require libgpg-error 1.17. No longer check for pthread. * doc/gpgme.texi: Document removed neccessity for thread safe gpgme flavours. * src/sema.h (DEFINE_GLOBAL_LOCK), (DEFINE_STATIC_LOCK, INIT_LOCK, DECLARE_LOCK) (DESTROY_LOCK, LOCK, UNLOCK): Change to gpgrt equivalents. * src/posix-sema.c, src/w32-sema.c: Removed. * src/Makefile.am: Remove libpthread and Update accordingly. * src/ath.c, src/ath.h (ath_mutex_init) (ath_mutex_destroy, ath_mutex_lock, ath_mutex_unlock): Removed. * src/ath.h (ATH_MUTEX_INITIALIZER): Removed. * src/version.c (do_subsystem_inits): sema_subsystem_init is no longer required. * tests/gpg/Makefile.am: Add new threading tests. (t_thread1_LDADD, t_cancel_LDADD): Use just gpgme. * tests/gpg/t-thread-keylist-verify.c, tests/gpg/t-thread-keylist.c: New. * src/gpgme-config.in: Use -lgpgme for thread-model pthread. -- Using gpgrt locks instead of pthread locks removes the neccessity to link pthread directly to gpgme and have a different, thread safe flavor of gpgme. Now gpgme is thread-safe if the conditions mentioned in the doc are met. As the cpp bindings linked against libgpgme and not libgpgme-pthread this fixes threading problems with them. libgpgme-pthread is removed but gpgme-config still supports --thread=pthread for compatibility with find scripts.
* core: Add gpgme_op_query_swdb and helper.Werner Koch2016-11-032-1/+152
| | | | | | | | | | | | | | | | | | | | | | | | * 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]>
* core: New API functions gpgme_set_sender, gpgme_get_sender.Werner Koch2016-10-253-0/+81
| | | | | | | | | | | | | | | | | | | | | | | * src/context.h (struct gpgme_context): Add field 'sender'. * src/gpgme.c: Include mbox-util.h. (gpgme_release): Free SENDER. (gpgme_set_sender): New. (gpgme_get_sender): New. * src/gpgme.def, src/libgpgme.vers: Add new functions. * src/engine-gpg.c (append_args_from_sender): New. (gpg_encrypt_sign, gpg_sign): Call append_args_from_sender. (gpg_verify): Add arg CTX. Call append_args_from_sender/ * src/engine-gpgsm.c (gpgsm_verify): Add dummy arg CTX. * src/engine-uiserver.c (uiserver_verify): Ditto. * src/engine.c (_gpgme_engine_op_verify): Add arg CTX. * src/verify.c (verify_start): Pass CTX to engine function. * tests/gpg/t-verify.c (main): Add some checks for new functions. * tests/run-sign.c (main): Add option --sender. * tests/run-verify.c (main): Ditto. Signed-off-by: Werner Koch <[email protected]>
* tests: Make t-cancel more portable.Werner Koch2016-10-141-1/+7
| | | | | | * tests/gpg/t-cancel.c: Include sys/time.h and protect sys/select.h. Signed-off-by: Werner Koch <[email protected]>
* Add missing includes.Justus Winter2016-10-061-0/+1
| | | | | | | | * lang/cpp/src/key.cpp: Include <strings.h> for 'strcasecmp'. * tests/gpg/t-cancel.c: Include <sys/select.h> for 'fd_set' and friends. Signed-off-by: Justus Winter <[email protected]>
* tests: Fix blunder.Justus Winter2016-09-271-1/+1
| | | | | | -- Fixes-commit: a423603f Signed-off-by: Justus Winter <[email protected]>
* tests: Fix check for gpg versions not reporting the critical flag.Justus Winter2016-09-271-0/+1
| | | | | | | * lang/python/tests/t-sig-notation.py: Also blacklist 2.0.x. * tests/gpg/t-sig-notation.c: Likewise. Signed-off-by: Justus Winter <[email protected]>
* move some file encodings to UTF-8Daniel Kahn Gillmor2016-09-232-5/+5
| | | | | | | | | | | | | | | * THANKS, doc/ChangeLog-2011, tests/ChangeLog-2011, tests/gpg/geheim.txt: convert from iso 8859-1 to utf-8. * lang/qt/src/dataprovider.cpp, lang/qt/src/qgpgmerefreshkeysjob.cpp, lang/qt/src/qgpgmesecretkeyexportjob.cpp: replace U+FFFD REPLACEMENT CHARACTER with proper U+00E4 LATIN SMALL LETTER A WITH DIAERESIS. -- Note that src/versioninfo.rc.in is still ISO-8859-1. I don't know whether Windows will properly handle UTF-8 in this file or not, so i have not touched it. Signed-off-by: Daniel Kahn Gillmor <[email protected]>
* tests: Check data after decryptionAndre Heinecke2016-09-231-2/+12
| | | | | * tests/gpgsm/t-decrypt.c (main): Check data matches expected. Only print result if it does not.
* tests: Add test for cancellationDaiki Ueno2016-09-223-2/+276
| | | | | | | | | | * tests/gpg/t-cancel.c: New file. * tests/gpg/Makefile.am (tests_skipped): New variable, default to t-genkey and t-cancel. (noinst_PROGRAMS): Add $(tests_skipped). * tests/gpg/.gitignore: Add t-cancel. Signed-off-by: Daiki Ueno <[email protected]>
* tests: Fix select usage in t-eventloopDaiki Ueno2016-09-221-1/+5
| | | | | | * tests/gpg/t-eventloop.c (do_select): Supply timeout value to select. Signed-off-by: Daiki Ueno <[email protected]>
* tests: Use --batch for gpg import.Werner Koch2016-09-201-3/+3
| | | | | | | | | * lang/python/tests/Makefile.am (./pubring-stamp): Use --batch with GPG to avoid Pinentries during import when using GnuPG >= 2.1. Replace touch by echo. * tests/gpg/Makefile.am (./pubring-stamp): Ditto. Signed-off-by: Werner Koch <[email protected]>