aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* tests,json: Add more testsAndre Heinecke2018-11-146-0/+50
| | | | | | | | | | | | * t-config-opt.in.json, t-config-opt.out.json, t-import.in.json, t-import.out.json, t-sign.in.json, t-sign.out.json: New. -- These should actually have been in a previous commit as they are already registered.
* tests,json: Add missing files and chunking testAndre Heinecke2018-11-146-1/+125
| | | | | | | | | | | * tests/json/Makefile.am, tests/json/final.test, tests/json/initial.test: New. * tests/json/t-chunking.in.json, tests/json/t-chunking.out.json: New test. * tests/json/t-json.c: Register new test. -- Oops..
* tests,json: Fix match if the first child differsAndre Heinecke2018-11-141-1/+13
| | | | | | | | | | | * tests/json/t-json.c (test_contains): Try all siblings of the haystack child. -- This fixes the case where we don't match against the first child because the order might have changed or a new element was inserted at the top. Then we have to try out also all the siblings.
* tests,json: Add the bulk of testsAndre Heinecke2018-11-1425-1/+443
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * t-json.c (tests): Register new tests. * t-createkey.in.json, t-createkey.out.json, t-decrypt-verify.in.json, t-decrypt-verify.out.json, t-decrypt.in.json, t-decrypt.out.json, t-delete.in.json, t-delete.out.json, t-encrypt-sign.in.json, t-encrypt-sign.out.json, t-encrypt.in.json, t-encrypt.out.json, t-export-secret-info.in.json, t-export-secret-info.out.json, t-export.in.json, t-export.out.json, t-json.c, t-keylist-secret.in.json, t-keylist-secret.out.json, t-keylist.in.json, t-keylist.out.json, t-verify.in.json, t-verify.out.json, t-version.in.json, t-version.out.json: New. -- Except for help and getmore there is now a test for each command.
* tests,json: Add wildcard string matchingAndre Heinecke2018-11-141-1/+3
| | | | | | | | | * tests/json/t-json.c (test_contains): When searching for "*" accept every string. -- This allows it to write tests that check for the existence of a string value but don't care about the contents. E.g. for Data.
* tests,json: Skip tests for older GnuPG versionsAndre Heinecke2018-11-141-0/+8
| | | | | | | | | | | * tests/json/t-json.c (main): Skip if version is not at least 2.2.0 -- In the past new tests often failed when a modern GPGME was used with old GnuPG's. This should avoid the hassle for packagers without the requirement that we test against old versions.
* tests,json: Suffix .json to test patternAndre Heinecke2018-11-143-2/+2
| | | | | * tests/json/t-config.in, tests/json/t-config.out: Renamed. * t-json.c (run_test): Use new naming pattern.
* tests,gpg: Add version check hlp to t-supportAndre Heinecke2018-11-141-0/+104
| | | | | | | | | | * t-support.h (parse_version_number, parse_version_string) (compare_versions): New. Copy&Paste from src/version.c (check_gpg_version): New helper to check for a gpg version. -- This should make it easier to write tests that e.g. rely on modern gnupg features.
* tests,json: Improve verbose mode and add verbose 2Andre Heinecke2018-11-141-13/+25
| | | | | * tests/json/t-json.c (main): Handle multiple verbose args. (test-contains): Improve verbose output
* tests,json: Fix and improve t-jsonAndre Heinecke2018-11-141-10/+17
| | | | | * tests/json/t-json.c (run_test): Terminate argv array correctly. (run_test): Note and handle empty response.
* tests: Add json testrunnerAndre Heinecke2018-11-145-1/+369
| | | | | | | | | | | | * configure.ac: Configure makefile. * tests/Makefile.am: Run json tests if gpg tests are run. * tests/json/t-json.c: New testrunner for json tests. * tests/json/t-config.in, tests/json/t-config.out: First test. -- The idea of this test runner is that it only looks for parts in the output. This should allow it to write robust tests that check for the basics in the output but don't fail when the output is extended or slightly changed.
* build: Update gpg-error.m4 and libassuan.m4.NIIBE Yutaka2018-11-132-26/+114
| | | | | | | * m4/gpg-error.m4: Update from master. * m4/libassuan.m4: Update from master. Signed-off-by: NIIBE Yutaka <[email protected]>
* Fix the previous commit.NIIBE Yutaka2018-11-121-0/+1
| | | | Signed-off-by: NIIBE Yutaka <[email protected]>
* build: Make gpgme.m4 use gpgrt-config with *.pc.NIIBE Yutaka2018-11-121-10/+48
| | | | | | | | | | | | * src/gpgme.m4 (_AM_PATH_GPGME_CONFIG): Use gpgrt-config with gpgme.pc when possible. (AM_PATH_GPGME_GLIB): Likewise with gpgme-glib.pc. -- Keeping AM_PATH_GPGME_PTHREAD, as is, untouched. Signed-off-by: NIIBE Yutaka <[email protected]>
* build: Provide gpgme-glib.pc too.NIIBE Yutaka2018-11-123-3/+17
| | | | | | | | | | | | * src/gpgme-glib.pc.in: New. * src/gpgme.pc.in (avail_lang): Remove. -- Provide gpgme-glib.pc for gpgme-glib library. The avial_lang information is no use because *.pc is for C. Signed-off-by: NIIBE Yutaka <[email protected]>
* build: Provide gpgme.pc, generated by configure.NIIBE Yutaka2018-11-124-6/+28
| | | | | | | | | | | | | | | | | | | | | | | * configure.ac: Generate src/gpgme.pc. * src/Makefile.am (pkgconfigdir, pkgconfig_DATA): New. (EXTRA_DIST): Add gpgme.pc.in. * src/gpgme.pc.in: New. * src/gpgme-config.in: Use variables. -- Some usages of gpgme-config is not compatible to pkg-config style; The --glib option and --thread option which affect the output by --cflags or --libs are not supported by gpgme.pc. gpgme-config's embedding information for gpg-error and libassuan at the build time of gpgme is considered inflexible than pkg-config style. It is now handled by dependency of gpgme.pc (Requires field). To use gpgme.pc, newer libgpg-error (>= 1.33) and libassuan (>= 2.5.3) are required, which provide gpg-error.pc and libassuan.pc respectively. Signed-off-by: NIIBE Yutaka <[email protected]>
* spelling: fix misspellingsDaniel Kahn Gillmor2018-11-0848-141/+141
| | | | Signed-off-by: Daniel Kahn Gillmor <[email protected]>
* docs: python bindingsBen McGinnes2018-11-0614-215/+504
| | | | | | | | * Continued restructuring as part of moving beyond mere;y the HOWTO file. * Generated the alternative source files for reST and Texinfo. * Fixed some errors and updated links after moving the what's new section to two new files (yes, two).
* python examples: another importerBen McGinnes2018-11-061-4/+8
| | | | * Fixed a similar type of bug with the non-protonmail importer.
* python examples: protonmail hkp scriptsBen McGinnes2018-11-062-28/+22
| | | | * fixed a bug in the import try statement for both versions.
* gpg: Avoid error diagnostics with --override-session-key.Werner Koch2018-11-051-1/+8
| | | | | | | | * src/engine-gpg.c (gpg_decrypt): Add --no-keyring. -- GnuPG-bug-id: 3464 Signed-off-by: Werner Koch <[email protected]>
* docs: typoBen McGinnes2018-11-031-1/+1
| | | | * lang/python/doc/src/gpgme-python-howto: s/Revokinging/Revoking/g
* w32: Fix a few compiler warnings.Werner Koch2018-11-022-15/+15
| | | | | | | * src/debug.h (TRACE_SYSERR_NR): New. * src/w32-io.c: Fix compiler warnings. Signed-off-by: Werner Koch <[email protected]>
* w32: Log all errors from CloseHandle and WFSO in w32-io.Werner Koch2018-11-021-49/+70
| | | | | | | | * src/w32-io.c (close_handle, _close_handle): New macro and function; use in place of all CloseHandle calls. (wait_for_single_object, _wait_for_single_object): Likewise. Signed-off-by: Werner Koch <[email protected]>
* w32: Don't use CloseHandle on an arbitrary integer.Werner Koch2018-11-021-1/+1
| | | | | | | | | | | | | | * src/assuan-support.c (my_waitpid): Do not close the PID = it is not a handle. -- At some time in the distant past we might have used the process object as pid which obviously required a close. However this was changed and so what we did here was to close an arbitrary handle (one which matches the pid). GnuPG-bug-id: 4237 Signed-off-by: Werner Koch <[email protected]>
* w32: Revamp the closing of system objects.Werner Koch2018-11-021-119/+261
| | | | | | | | | | | | | | | | | | | | | | * src/w32-io.c (hddesc_t): New. (reader_context_s, writer_context_s): Replace file_sock and file_hd by the hddesc_t hdd. (fd_table): Ditto. Add want_reader and want_writer. (hddesc_lock): New lock variable. (new_hddesc, ref_hddesc): New. (release_hddesc): New. (reader, writer): Call release_hddesc. (create_reader, create_writer): Change for new hddesc scheme. (destroy_reader, destroy_writer): Replace closing by a call to release_hddesc. (_gpgme_io_pipe): Change for new hddesc scheme. (_gpgme_io_close): Ditto. (_gpgme_io_dup): Ditto. Use want_reader and want_writer. (_gpgme_io_socket): Change for new hddesc scheme. -- GnuPG-bug-id: 4237 Signed-off-by: Werner Koch <[email protected]>
* core: Print a dump of the I/O data only at level 8.Werner Koch2018-11-023-7/+18
| | | | | | | | | | | | * src/debug.h (TRACE_SUC3): New. (TRACE_LOGBUFX): New. * src/posix-io.c: Use TRACE_LOGBUFX instead of TRACE_LOGBUF. * src/w32-glib-io.c: Ditto. -- This will also be changed for w32-io as part of another commit. Signed-off-by: Werner Koch <[email protected]>
* w32: Fix and improve CancelSynchronousIo use.Werner Koch2018-11-021-4/+6
| | | | | | | | | * src/w32-util.c (_gpgme_w32_cancel_synchronous_io): Fix name of DLL and print trace info only on error. -- Fixes-commit: 63ba09b541dabbe838253926896e721cb9be564a Signed-off-by: Werner Koch <[email protected]>
* w32: Use CancelSynchronousIo in destroy_reader.Werner Koch2018-11-013-4/+41
| | | | | | | | | | | * src/w32-util.c (_gpgme_w32_cancel_synchronous_io): New. * src/w32-io.c (destroy_reader): Use it here. -- This has not been tested but should on Vista and later help to fix a possible hang. Signed-off-by: Werner Koch <[email protected]>
* w32: Merge all the object tables of w32-io into one.Werner Koch2018-11-011-264/+245
| | | | | | | | | | * src/w32-io.c (fd_table_size): New. Used in most places instead of the MAX_SLAFD constant. (reader_table, writer_table, notify_table): Merge them into ... (fd_table): this table. Chnage all affected code to take just one lock. Signed-off-by: Werner Koch <[email protected]>
* w32: Remove unused arg from two functions.Werner Koch2018-10-311-32/+47
| | | | | | | * src/w32-io.c (find_reader, find_writer): Remove unused start_it arg. It is always passed as true. Change callers. Signed-off-by: Werner Koch <[email protected]>
* w32: Remove all support for WindowsCEWerner Koch2018-10-3122-1746/+15
| | | | | | | | | | | | | | | | | | | | | | | | | * configure.ac: Remove WindwosCE support. * contrib/: Remove all; it was only used for WindowsCE. * src/w32-ce.c, src/w32-ce.h: Remove files. * src/Makefile.am (system_components): Remove these files. * src/ath.c, src/ath.h: Remove W32CE support. * src/data-compat.c (gpgme_data_new_from_filepart): Ditto. (gpgme_data_new_from_file): Ditto. * src/debug.c (debug_init, _gpgme_debug): Ditto. * src/gpgme-tool.c (gpgme_server): Ditto. (main): Ditto. * src/priv-io.h: Do not include w32-ce.h. * src/util.h: Remove WindowsCE support. * src/w32-io.c: Ditto. * src/w32-util.c: Ditto. * src/debug.h (TRACE_SUC4): New. -- There is no more hardware to test our code, the support for Windows CE terminated along time ago. Note that our code worked only with the old WindowsCE with that overall system limit of 31 processes. Signed-off-by: Werner Koch <[email protected]>
* w32: Remove cruft in w32-io from WindowsME times.Werner Koch2018-10-311-29/+0
| | | | | | | | | | | | * src/w32-io.c (set_synchronize): Remove. (create_reader, create_writer): No need for set_synchronize. -- The set_synchronize dates back to 2001 at a time when I wrote the Windows support on WindowsME and Windows2000. Maybe this was required then due to bugs in that old NT or partly NT based Windows versions. Signed-off-by: Werner Koch <[email protected]>
* docs: python docs restructureBen McGinnes2018-10-304-71/+168
| | | | | * Moved the what's new section out of the HOWTO (mostly), in anticipation of expanding the docs to be more than merely a HOWTO.
* docs: pythonBen McGinnes2018-10-303-1/+14
| | | | | * dropped the ".org" extension and added a mode line for each file as this will make scripting format conversions a lot easier.
* w32: Fix previous commit.Werner Koch2018-10-301-3/+2
| | | | | | | * src/w32-io.c (_gpgme_io_spawn): Move freeing of TMP_NAME behind its use in an error handling. Signed-off-by: Werner Koch <[email protected]>
* core,w32: Fix memleak of tmp_name in w32-ioAndre Heinecke2018-10-291-0/+7
| | | | | | | * src/w32-io.c (_gpgme_io_spawn): Free tmp_name. -- GnuPG-Bug-Id: T4238
* tests: Add repeat argument to run-verifyAndre Heinecke2018-10-291-68/+92
| | | | | | | * tests/run-verify.c (main): Add repeat argument. -- This helps reproducing rare / random crashes.
* core: Do not crash if CMS plaintext is ignoredAndre Heinecke2018-10-291-3/+11
| | | | | | | | | | | | | * src/engine-gpgsm.c (gpgsm_verify): Fix handling both plaintext and signed_text as NULL. -- Previously if plaintext was NULL and signed_text was NULL it would set MESSAGE_FD to NULL which resulted in a crash. Ignoring the plaintext of an opaque signature might make sense in some cases and engine-gpg handles it.
* cpp,tests: Add another test runnerAndre Heinecke2018-10-292-1/+188
| | | | | | | | * lang/cpp/tests/run-verify.cpp: New. * lang/cpp/tests/Makefile.am: Update accordingly. -- Add another test runner which helps to find problems on windows.
* cpp: Add some convenience functionsAndre Heinecke2018-10-255-0/+49
| | | | | | | | | | | | | | | | * lang/cpp/src/context.cpp (Context::create): New. * lang/cpp/src/context.h: Update accordingly. * lang/cpp/src/key.cpp, lang/cpp/src/key.h: (Key::isBad, Subkey::isBad, UserID::isBad) (UserID::Signature::isBad): Add shorthand for the isX checks. * NEWS: Mention it. -- I don't know how often I wrote: if (key.isNull() || key.isExpired() || key.isRevoked() ... And for the context it is good practice to use a unique ptr so the API should make it easy.
* docs: python howtoBen McGinnes2018-10-231-5/+5
| | | | * Fixed a few spelling and grammatical errors.
* Python: docs tweaksBen McGinnes2018-10-212-15/+39
| | | | | | | * Fixed a minor error in how the reST version of the HOWTO is generated. * Updated the help() in __init__.py with a little more detail as to why not to use the lower level functions.
* python bindings: callback testBen McGinnes2018-10-201-2/+30
| | | | | | | * lang/python/tests/t-callbacks.py: Updated test logic to try generating a key which expires in 2099 and if that fails then fallback to an expiration in 2037 in an attempt to catch the 32-bit systems.
* core: Fix segv in genkey when no endtag is provided.Werner Koch2018-10-181-2/+6
| | | | | | | | | | | | * src/genkey.c (get_key_parameter): Provide a fallback ENDTAG. -- It would actually be more correct to return an error in this case but it is possible tha there are users who did not provide an endtag and out of luck they also didn't trigger a segv. GnuPG-bug-id: 4192 Signed-off-by: Werner Koch <[email protected]>
* core: Return an error if NULL is provided for genkey's parms.Werner Koch2018-10-182-3/+6
| | | | | | | | | | | | * src/debug.c (_gpgme_debug_buffer): Bail out of BUF is NULL. * src/genkey.c (gpgme_op_genkey): Do no deref a NULL in TRACE_LOGBUF. (gpgme_op_genkey_start): Ditto. Return an error if PARMS is NULL. -- This robustness patch should solve one part of GnuPG-bug-id: 4192 Signed-off-by: Werner Koch <[email protected]>
* python: do not export HAVE_CXX11 definitionDaniel Kahn Gillmor2018-10-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | * lang/python/gpgme.i: ignore HAVE_CXX11 in SWIG interface -- If there are two distinct builds (a) and (b) of gpgme which both build python bindings, and build (a) also happens to build the C++ bindings, then the generated gpg/gpgme.py file from build (a) will not be usable with the .so generated in build (b), despite them being exactly the same, and having nothing to do with C++. In particular, it will fail with: ----------- File "…/gpg/__init__.py", line 99, in <module> from . import core File "…/gpg/core.py", line 10, in <module> from . import gpgme File "…/gpg/gpgme.py", line 152, in <module> HAVE_CXX11 = _gpgme.HAVE_CXX11 AttributeError: module 'gpg._gpgme' has no attribute 'HAVE_CXX11' ----------- By asking SWIG to ignore this definition, we stabilize the generated .py and the .so, ensuring that they are more cleanly interoperable.
* doc: convert more links to equivalent https:// URLsDaniel Kahn Gillmor2018-10-184-6/+6
| | | | | | -- Signed-off-by: Daniel Kahn Gillmor <[email protected]>
* doc: convert more http:// links to https://Daniel Kahn Gillmor2018-10-1811-18/+18
| | | | | | -- Signed-off-by: Daniel Kahn Gillmor <[email protected]>
* doc: use https:// for www.gnu.orgDaniel Kahn Gillmor2018-10-18137-147/+147
| | | | | | -- Signed-off-by: Daniel Kahn Gillmor <[email protected]>