aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* | gpgme-tool: Switch to argparse.c for option parsing.Werner Koch2015-08-314-491/+1862
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/argparse.c, src/argparse.h: New. Taken from current gnupg. * src/Makefile.am (gpgme_tool_SOURCES): New. * src/gpgme-tool.c: Remove all argp.h stuff. (my_strusage): New. (main): Change to use argparse. -- As a GnuPG related tool the user should get the same experience in option parsing as with gpg et al. Thus we use the same parser. Signed-off-by: Werner Koch <[email protected]>
* | Add gpgme_pubkey_algo_stringWerner Koch2015-08-308-33/+94
| | | | | | | | | | | | | | | | | | | | * src/gpgme.h.in (GPGME_PK_EDDSA): New. (gpgme_pubkey_algo_string): New. * src/conversion.c (_gpgme_map_pk_algo): Add new algo. * src/gpgme.c (gpgme_pubkey_algo_string): New. (gpgme_pubkey_algo_name): Reformat. Signed-off-by: Werner Koch <[email protected]>
* | Post release updatesWerner Koch2015-08-262-1/+5
| | | | | | | | --
* | Release 1.6.0gpgme-1.6.0Werner Koch2015-08-265-20/+90
| | | | | | | | | | | | * configure.ac: Set LT version to C25/A14/R0. Signed-off-by: Werner Koch <[email protected]>
* | Make use of GPGRT macros is available.Werner Koch2015-08-261-12/+17
| | | | | | | | | | | | * src/gpgme.h.in (_GPGME_INLINE): Define using GPGRT_INLINE if possible. Fix problem with -Wundef by adding an extra "defined()". (_GPGME_GCC_VERSION): Define using GPGRT_ macro if possible.
* | Avoid -Wundef warnings if gpgme.h is used by g++.Werner Koch2015-08-251-20/+24
| | | | | | | | | | | | | | * src/gpgme.h.in (_GPGME_INLINE): Move definition into the extern-C-scope. Signed-off-by: Werner Koch <[email protected]>
* | Add configure option --enable-build-timestamp.Werner Koch2015-08-251-1/+11
| | | | | | | | | | | | | | | | | | | | | | | | * configure.ac (BUILD_TIMESTAMP): Set to "<none>" by default. -- This is based on libgpg-error commit d620005fd1a655d591fccb44639e22ea445e4554 but changed to be disbaled by default. Check there for some background. Signed-off-by: Werner Koch <[email protected]>
* | Relax ttyname_r error checksDaiki Ueno2015-08-255-29/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/engine-assuan.c (llass_new): Don't treat ttyname_r error as fatal. * src/engine-g13.c (g13_new): Likewise. * src/engine-gpg.c (gpg_new): Likewise. * src/engine-gpgsm.c (gpgsm_new): Likewise. * src/engine-uiserver.c (uiserver_new): Likewise. -- Even though isatty() returns 1, ttyname_r() may fail in many ways, e.g., when /dev/pts is not accessible under chroot. Since all our uses of ttyname_r() require that the function works, we can treat the failure as if isatty() fails. Signed-off-by: Daiki Ueno <[email protected]>
* | Cleanup layout of gpgme.hWerner Koch2015-08-252-167/+225
| | | | | | | | | | | | * src/gpgme.h.in: Reorder prototypes. Chnage some comments. Signed-off-by: Werner Koch <[email protected]>
* | Improve error return by checking the FAILURE status.Werner Koch2015-08-2511-2/+98
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/gpgme.h.in (GPGME_STATUS_FAILURE): New. * src/status-table.c (FAILURE): New. * src/op-support.c (_gpgme_parse_failure): New. * src/passphrase.c (_gpgme_passphrase_status_handler): Forward FAILURE status line to the status callback. * src/decrypt.c (op_data_t): Add field failure_code. (_gpgme_decrypt_status_handler): Parse that code and act upon it on EOF. * src/encrypt.c (op_data_t): Add field failure_code. (_gpgme_encrypt_status_handler): Parse that code and act upon it on EOF. * src/genkey.c (op_data_t): Add field failure_code. (genkey_status_handler): Parse that code and act upon it on EOF. * src/passwd.c (op_data_t): Add field failure_code. (passwd_status_handler): Parse that code and act upon it on EOF. * src/sign.c (op_data_t): Add field failure_code. (_gpgme_sign_status_handler): Parse that code and act upon it on EOF. * src/verify.c (op_data_t): Add field failure_code. (_gpgme_verify_status_handler): Parse that code and act upon it on EOF. -- This requires GnuPG 2.1.8 to actually make a difference. Signed-off-by: Werner Koch <[email protected]>
* | tests: Build test programs in tests/ without wrappers.Werner Koch2015-08-251-0/+1
| | | | | | | | --
* | tests: Allow using run-sign to test loopback pinentry problems.Werner Koch2015-08-251-0/+26
| | | | | | | | * tests/run-sign.c: Add options --status and --loopback.
* | Call status_cb for an ERROR status seen in the passphrase handler.Werner Koch2015-08-241-0/+12
| | | | | | | | | | | | | | | | | | | | * src/passphrase.c (_gpgme_passphrase_status_handler): Call status_cb. -- Frankly, we should have a more generic way of feeding the status_cb handler than our current ad-hoc method. Signed-off-by: Werner Koch <[email protected]>
* | w32: Look for gpgconf in the new GnuPG 2.1 install dir.Werner Koch2015-08-241-6/+13
| | | | | | | | | | | | | | * src/w32-util.c (_gpgme_get_gpgconf_path): Try another location of gpgconf.exe. Signed-off-by: Werner Koch <[email protected]>
* | w32: Expect gpgme-w32spawn.exe only in the gpgme installation dir.Werner Koch2015-08-241-58/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/w32-util.c (find_program_at_standard_place): Remove. (_gpgme_get_gpg_path): Make the search order more explicit. (_gpgme_get_gpgconf_path): Ditto. (_gpgme_get_w32spawn_path): Search only in the inst_dir. -- This tries to avoid possible unclear bug reports by removing the fallback to the current gpg4win installation directory for the gpgme helper. It is expected that users of gpgme installing their own gpgme version also install the matching helper. Signed-off-by: Werner Koch <[email protected]>
* | w32: Print the installation directory in debug mode.Werner Koch2015-08-242-1/+15
| | | | | | | | | | | | | | | | | | | | * src/debug.c (debug_init) [W32]: Show libgpgme installation dir. -- I expect that gpgme will be distributed by applications and thus it will be helpful to see in the debug log which gpgme is actually used. Signed-off-by: Werner Koch <[email protected]>
* | Add an export secret key feature.Werner Koch2015-08-247-20/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/gpgme.h.in (GPGME_EXPORT_MODE_SECRET): New. (GPGME_EXPORT_MODE_RAW): New. (GPGME_EXPORT_MODE_PKCS12): New. * src/export.c (export_start, export_ext_start): Allow new flags. * src/engine-gpg.c (export_common): Support secret key export. * src/engine-gpgsm.c (gpgsm_export, gpgsm_export_ext): Ditto. * src/gpgme-tool.c (cmd_export): Add options --secret, --raw, and --pkcs12. * tests/run-export.c (main): Likewise. -- Note that exporting secret X.509 keys requires GnuPG 2.1.8. Signed-off-by: Werner Koch <[email protected]>
* | Parse INQUIRE_MAXLEN in the passphrase callback.Ben Kibbey2015-08-161-3/+15
| | | | | | | | | | | | | | | | | | | | | | * src/passphrase.c (_gpgme_passphrase_status_handler): Parse GPGME_STATUS_INQUIRE_MAXLEN. * src/passphrase.c (_gpgme_passphrase_command_handler): Send the INQUIRE_MAXLEN status message. -- Fixes passing this status message along when decrypting symmetric data from gpg.
* | Fix gpgme_{get,set}_status_cb to match documentation.Ben Kibbey2015-08-152-9/+14
| | | | | | | | | | | | * doc/gpgme.texi: Minor fixes. * src/gpgme.c (gpgme_get_status_cb): Set return variables to NULL and check for a valid ctx pointer.
* | Parse the INQUIRE_MAXLEN status message.Ben Kibbey2015-08-155-1/+27
| | | | | | | | | | | | | | | | | | | | | | | | * src/gpgme.h.in: (gpgme_status_code_t): Add INQUIRE_MAXLEN. * src/status-table.c (status_table_s): Ditto. * src/genkey.c (genkey_status_handler): Parse INQUIRE_MAXLEN. * src/decrypt.c (_gpgme_decrypt_status_handler): Ditto. * src/sign.c (_gpgme_sign_status_handler): Ditto. This status message informs the client of the maximum length of an inquired line. It is sent from gpg and forwarded to the client via gpgme_status_cb_t.
* | Add gpgme_set/get_status_cb().Ben Kibbey2015-08-156-0/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/gpgme.h.in (gpgme_set_status_cb): New. (gpgme_get_status_cb): New. (gpgme_status_cb_t): New. * src/gpgme.c (gpgme_set_status_cb): New. (gpgme_get_status_cb): New. * src/context.h (status_cb): New. (status_cb_value): New. * src/gpgme.def: Export new symbols. * src/libgpgme.vers: Ditto. * doc/gpgme.texi: Document these new functions. -- This callback function is used to forward status messages from gpg back to the client.
* | Make use of user passphrase handler during genkey.Ben Kibbey2015-08-151-0/+8
| | | | | | | | | | | | | | | | | | * src/genkey.c (genkey_start): set engine passphrase command handler. -- This allows for inquiring a new passphrase during key generation rather than requiring a pinentry. Needs a patch to gnupg to make use of --command-fd with --gen-key.
* | Also check the return code in gpg_sign().Ben Kibbey2015-08-121-1/+1
| | | | | | | | * src/engine-gpg.c (gpg_sign): Check return value from start().
* | Check the return value when starting gpg.Ben Kibbey2015-08-111-3/+3
| | | | | | | | | | * src/engine-gpg.c (gpg_decrypt, gpg_delete, gpg_passwd): Check return value of start().
* | Add offline mode support for CMS keylistingAndre Heinecke2015-07-3113-15/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/gpgme.texi: Document offline mode. * src/context.h (gpgme_context): Add offline. * src/engine-backend.h (keylist, keylist_ext): Add engine_flags. * src/engine.c, src/engine.h (_gpgme_engine_op_keylist): Ditto. (_gpgme_engine_op_keylist_ext): Ditto. * src/engine.h (GPGME_ENGINE_FLAG_OFFLINE): New. * src/engine-gpg.c (gpg_keylist, gpg_keylist_ext): Ditto. * src/engine-gpgsm.c (gpgsm_keylist): Handle engine_flags. (gpgsm_keylist_ext): Ditto. * src/gpgme.c (gpgme_set_offline, gpgme_get_offline): New. * src/gpgme.def (gpgme_set_offline, gpgme_get_offline): New. * src/gpgme.h.in (gpgme_set_offline, gpgme_get_offline): New. * src/libgpgme.vers (gpgme_set_offline, gpgme_get_offline): New. * src/keylist.c (gpgme_op_keylist_start): Set offline flag. (gpgme_op_keylist_ext_start): Ditto. * tests/run-keylist.c (show_usage, main): Add offline argument. -- The offline engine option was introduced with gpgsm 2.1.6 it is mainly useful for a full keylisting that includes the certificate validation but does not depend on external information that could take an indefinite amount of time to collect. Signed-off-by: Andre Heinecke <[email protected]>
* | build: ignore scissor line for the commit-msg hookPeter Wu2015-07-231-0/+6
| | | | | | | | | | | | | | | | | | | | | | * build-aux/git-hooks/commit-msg: Stop processing more lines when the scissor line is encountered. -- This allows the command `git commit -v` to work even if the code is longer than 72 characters. Note that comments are already ignored by the previous line. Signed-off-by: Peter Wu <[email protected]>
* | Add option --lib-version to gpgme-tool.Werner Koch2015-07-231-4/+23
| | | | | | | | | | | | * src/gpgme-tool.c (options, parse_options): Add --lib-version (CMD_LIBVERSION): New. (main): Implement.
* | Post release updatesWerner Koch2015-06-082-2/+6
| | | | | | | | --
* | Release 1.5.5gpgme-1.5.5Werner Koch2015-06-083-5/+11
| |
* | Fix regression with gpgsm 2.0 due to "OPTION with-secret".Werner Koch2015-06-081-16/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/engine-gpgsm.c (gpgsm_assuan_simple_command): Do not terminate on a status lines. -- This bug has been with us since the support for gpgsm: If there is no status line handler but a status line is received anyway the command handling loop terminates and thus the command/answer order gets out of sync. In the case of the bug report this is triggered by sending an option which starts the agent and that starting emits a "PROGRESS" status line. The solution is not to stop reading after a status line but record a possible error code and return that only after OK or ERR. GnuPG-bug-id: 1795 Signed-off-by: Werner Koch <[email protected]>
* | tests: Add option --secret to run-keylist.Werner Koch2015-06-081-1/+8
| | | | | | | | Signed-off-by: Werner Koch <[email protected]>
* | Fix compiler warnings about unused value in TRACE macros.Werner Koch2015-06-082-37/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * src/debug.h: Change macros to not have a literal 0 as last expression of the comma operator. * src/debug.c (_gpgme_debug_frame_end): Return 0. (_gpgme_debug): Return 0. -- Instead of using foo(), 0 for the trace macros we let foo() return 0 instead. Signed-off-by: Werner Koch <[email protected]>
* | Fix test suite for GnuPG 2.1 which uses pubring.kbx.Werner Koch2015-06-088-16/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tests/gpgsm/final.test: New. * tests/gpgsm/initial.test: New. * tests/gpg/start-stop-agent: Move to ../. * tests/gpgsm/Makefile.am (TESTS_ENVIRONMENT): Export top_srcdir. (TESTS): Add intial.test and final.test. (AM_LDFLAGS): Add -no-install. (clean-local): Use start-stop-agent (initial.test): Add dependency. * tests/gpg/Makefile.am (top_srcdir): Export top_srcdir. (AM_LDFLAGS): Add -no-install. (check-local): Depend on pubring-stamp instead of pubring.gpg. (initial.test): Depend on check-local. (./pubring-gpg): Replace by rule for ./pubring-stamp. -- There are also a couple of other changes which should make the tests a bit more robust and the gpg and gpgsm tests more similar. The -no-install avoids creating wrappers for test programs, which make debugging easier. The dependency on check-local guarantees that its rules are run before the first test. This is important because conf files are setup by this rule. Earlier automake versions seem to have run check-local always before the tests but today the order of execution is not defined. Signed-off-by: Werner Koch <[email protected]>
* | Set GPGME_SIGSUM_KEY_REVOKED also for gpg.Matthew Barnes2015-06-051-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | * src/verify.c (calc_sig_summary): Handle GPG_ERR_CERT_REVOKED. -- parse_new_sig() handles a revoked key by setting sig->status to GPG_ERR_CERT_REVOKED, but then later calc_sig_summary() expects that code in sig->validity_reason. Additional comments added by wk.
* | Fix segv for userids with a backslash.Werner Koch2015-06-051-0/+1
|/ | | | | | | | | | | * src/engine-gpg.c (gpg_keylist_preprocess): Increment SRC for a backslash. -- This bug is not exploitable because this bug fills up .data with backslashes and thus causes the segv. Signed-off-by: Werner Koch <[email protected]>
* Post release updates.Werner Koch2015-04-132-2/+6
| | | | --
* Release 1.5.4.gpgme-1.5.4Werner Koch2015-04-133-9/+10
|
* w32: Use -static-libgcc to avoid linking to libgcc_s_sjlj-1.dll.Werner Koch2015-04-131-4/+8
| | | | | | | | | | | | | | | | | | * src/Makefile.am (extra_ltoptions): New. (libgpgme_la_LDFLAGS): Use it. (libgpgme_pthread_la_LDFLAGS): Ditto. (libgpgme_glib_la_LDFLAGS): Ditto. -- Since gcc 4.8 there is a regression in Mingw64 in that plain C programs may link to libgcc_s.a which has a dependency on libgcc_s_sjlj.dll. This is for example triggered by using long long arithmetic on a 32 bit Windows (e.g symbol __udivdi3). Note that we don't use this patch for the Qt version which, as C++ programs, actually requires that DLL, Signed-off-by: Werner Koch <[email protected]>
* Fix potential crash in trace macro.Werner Koch2015-03-163-5/+3
| | | | | | | | | * src/signers.c (gpgme_signers_add): Avoid deref of a NULL KEY in the trace macro. * src/engine-spawn.c (engspawn_release): Remove always true condition. * src/engine-gpg.c (gpg_release): Ditto. Signed-off-by: Werner Koch <[email protected]>
* Fix one byte too short malloc.Werner Koch2015-03-161-1/+1
| | | | | | | | | | | | | | * src/engine-spawn.c (add_data): Fix malloc -- Bummer. Why did I subtracted one from the size? Did I assume a dynamically allocated structure with a string field which was not going to be used? Very strange. Not a real problem though because malloc will anyway round up the allocation to at least the next word size. Detected by Stack 0.3.
* Switch to automake 1.14 and update build-aux files.Werner Koch2015-01-3011-829/+1086
| | | | Signed-off-by: Werner Koch <[email protected]>
* doc: Update gpl.texi to match version from gnupgDaniel Kahn Gillmor2014-12-151-13/+21
| | | | | | | | | | | | | -- Somehow the doc/gpl.texi from gpgme and gnupg drifted out of sync. This patch to gpgme's file brings it in line with gnupg's master branch, and avoids the following errors during make: ./gpl.texi:667: @section seen before @end enumerate ./gpl.texi:724: unmatched `@end enumerate' ./gpl.texi:1: warning: node next `Copying' in menu `Concept Index' and in sectioning `Function and Data Index' differ
* Post release updates.Werner Koch2014-12-113-4/+10
| | | | --
* Release 1.5.3.gpgme-1.5.3Werner Koch2014-12-112-2/+5
| | | | * configure.ac: Set LT version to C24/A13/R2.
* Return an error for some export key operations.Werner Koch2014-12-082-4/+127
| | | | | | | | | | | | | | | | * src/context.h (OPDATA_EXPORT): New. * src/export.c (op_data_t): New. (release_op_data): New. (parse_error): New. (export_status_handler): New. (export_start, export_ext_start): Prepare op_data. (gpgme_op_export_ext, gpgme_op_export_keys): Return an error from the status handler. -- To support an error return also for the async functions we need to extend the API. Until we have done that this new features helps at least in some cases; in particular for --send-keys.
* Post release updatesWerner Koch2014-11-213-3/+7
| | | | --
* Release 1.5.2.gpgme-1.5.2Werner Koch2014-11-212-2/+6
| | | | * configure.ac: Set LT version to C24/A13/R1.
* Update the previous commitWerner Koch2014-11-211-58/+54
| | | | | | | | | | | * src/sign.c (gpgme_op_sign_result): Reformat and take care of failed malloc. -- Although _gpgme_debug_trace() is current always true, the code should be run always and not just in trace mode. Also added error checking to malloc and strdup. And while at replace some while by for loop for easier readability.
* Fix returning new signatures when there are none.Ben Kibbey2014-11-211-8/+54
| | | | | | | | | | | | | | | | | | * src/sign.c (gpgme_op_sign_result): Test that invalid and valid signatures add up to gpgme_signers_count(). -- When invalid and valid signatures do not equal gpgme_signers_count() it means that there was a bad passphrase during signing after the first signer. This leaves the result.signatures from previous signers intact which isn't correct since gpg will report: gpg: number of one-pass packets does not match number of signature packets gpg: can't handle this ambiguous signature data during verify. So when this happens append the valid signatures to the .invalid_signers list with .reason set to GPG_ERR_GENERAL.
* doc: Clarify the FILE command.Werner Koch2014-11-191-4/+9
| | | | --