Commit Graph

2228 Commits

Author SHA1 Message Date
Werner Koch
29eced5068 Add public function gpgme_io_writen.
* src/gpgme.c (gpgme_io_read): New.
--

This is a writen style variant for gpgme_io_write.  It is often easier
to use this one in passphrase and edit callbacks.
2013-02-07 20:51:29 +01:00
Werner Koch
51fd6d8292 Use gpg_error_from_syserror instead of directly accessing errno.
--

Also fixed a couple of minor thing; e.g. save the error before calling
cleanup functions.  Do not save the errno if only free is called
in between.
2013-02-06 17:35:40 +01:00
Werner Koch
322552a88d Improve parsing of the GIT revision number.
* configure.ac (git_revision): Use git rev-parse.
2012-11-16 13:50:58 +01:00
Werner Koch
cd6de92f42 Fix non-portable use of chmod in autogen.sh.
* autogen.sh: Remove option -c from chmod.
2012-11-16 13:45:14 +01:00
Werner Koch
1a17acd8e9 Make _gpgme_encode_percent_string work for memory buffers.
* src/conversion.c (D_gpgme_encode_percent_string): Remove stray
semicolon.  Reported by Xi Wang.
--
Obviously this function is not used with a supplied LEN argument != 0.
2012-11-15 11:14:58 +01:00
Werner Koch
c97d067f27 Make local variables configure hack more robust
* configure.ac (emacs_local_vars_begin): Use extra m4 quoting so that
newer Emscasen won't take it up as Local Variables for this file.
2012-10-24 16:51:47 +02:00
Werner Koch
12a0c93433 Fix ttyname problem on Android.
* configure.ac: Define macro and conditional HAVE_ANDROID_SYSTEM.
* m4/gnupg-ttyname.m4: Force use of replacement on Android.
* src/ttyname_r.c: Ditto.
--

Android's bionic lib has no working ttyname_r() nor ttyname().  Using
them anyway will print

  FIX ME! implement ttyname_r() bionic/libc/bionic/stubs.c:466

Thus we force the use of our replacement code which simply return
"/dev/tty".
2012-10-24 16:44:34 +02:00
Werner Koch
cc59b75b21 tests: Adhere to the docs and call gpgme_check_version.
* tests/t-engine-info.c: Call gpgme_check_version.
2012-10-24 16:07:31 +02:00
Werner Koch
bd24feaa86 Trace the use of GPG_ERR_INV_ENGINE.
* src/debug.h: Include "gpgme.h"
(_gpgme_trace_gpgme_error): New.
(trace_gpg_error): New macro.  Use it in all files where we return
GPG_ERR_INV_ENGINE; also "include debug.h" as needed.
--

This is a pretty common error code but often it is hard to figure out
the actual cause.  With debug level 4 we now print the file name and
line number where this error code is generated by gpgme.  Along with
the git revision printed in the first log lines, this should give us
an easier way to track down the problems related to this error code.
2012-10-19 11:23:39 +02:00
Werner Koch
14a8fd4eec Avoid warning about initialized but not used variable
* src/engine-gpgsm.c (gpgsm_set_fd): Do not set DIR if not needed.
2012-10-19 11:18:08 +02:00
Werner Koch
e11e7fc558 gpgme-tool: Use membuf functions to build up strings.
* src/gpgme-tool.c (clear_membuf, init_membuf, put_membuf)
(put_membuf_str, get_membuf, peek_membuf): Add membuf functions.
Take from GnuPG master's common/membuf.[ch] and patch for our use.
(result_xml_escape): Rewrite using new functions.
--

First counting, then allocating, and finally copying data is prone to
errors.  We better use the membuf functions which make it much easier.
2012-10-11 17:02:50 +02:00
Werner Koch
aa30b47aa0 gpgme-tool: Change license from LPGLv2+ to GPLv3+
* src/gpgme-tool.c: Change license notice.
--

gpgme-tool.c is a standalone program, thus it makes no sense to keep
it under the LGPL.  We already had the manual under GPLv3+.
2012-10-11 16:54:58 +02:00
W. Trevor King
3f1329e1c9 gpgme-tool: escape special characters in output XML data (<, >, and &).
[[PGP Signed Part:Undecided]]
src/gpgme-tool.c (result_xml_escape_replacement, result_xml_escape):
New.
(result_xml_tag_data): Use result_xml_escape() to escape data.
(result_add_error): Use unescaped < and >.
--

This is a general solution for generating valid XML, but the specific
output that inspired the change was from the KEYLIST command:

  <uid>William Trevor King <wking@tremily.us></uid>

Now the uids are properly escaped:

   <uid>William Trevor King &lt;wking@tremily.us&gt;</uid>

Signed-off-by: W. Trevor King <wking@tremily.us>
2012-10-11 16:22:46 +02:00
W. Trevor King
c28ebca9f2 gpgme-tool: Fix chain_id -> chain-id in KEYLIST XML.
[[PGP Signed Part:Undecided]]
src/gpgme-tool.c (cmd_keylist): Use <chain-id> instead of <chain_id>.
--
All the other tags map struct attribute underscores to hyphens, so
fixing <chain_id> follows the priciple of least surprise.

Signed-off-by: W. Trevor King <wking@tremily.us>
2012-10-11 16:18:24 +02:00
W. Trevor King
3d69b51f7f gpgme-tool: Return more detailed XML from KEYLIST
src/gpgme-tool.c (cmd_keylist): Convert output from a list of
to more detailed XML.
(xml_preamble1, xml_preamble2, xml_end): Make global.
(result_add_protocol, result_add_validity): New functions for
generating XML from GPGME types.
(result_add_string): Treat NULL strings as "".
(result_xml_tag_data): Make 'data' a 'const char' so we can use the
value returned by gpgme_get_protocol_name directly.
--

This is a first pass at returning most of the gpgme_key_t data from the
KEYLIST call.

Signed-off-by: W. Trevor King <wking@tremily.us>
2012-09-28 08:31:51 +02:00
W. Trevor King
dda3702a90 gpgme-tool: Initialize input_fd and output_fd
* src/gpgme-tool.c (gpgme_server): Initialize input_fd and output_fd.

Signed-off-by: W. Trevor King <wking@tremily.us>
2012-09-28 08:25:48 +02:00
Werner Koch
193eb62538 gpgme-tool: Fix handling of file descriptors
* src/gpgme-tool.c (server_reset_fds): Use close/CloseHandle instead
of the assuan close functions.
(_cmd_decrypt_verify, _cmd_sign_encrypt, cmd_verify, cmd_import)
(cmd_export, cmd_genkey, cmd_getauditlog): Use SERVER object instead
of assuan_get_*_fd functions.
--

Although we used our own handlers for INPUT and OUTPUT, we still used
assuan_get_input_fd, assuan_get_output_fd and their close functions.
That clearly can't work because libassuan does not have any values for
them.
2012-09-26 09:37:22 +02:00
Werner Koch
d230b7c2f9 Add DCO file
--
2012-09-25 19:21:00 +02:00
Werner Koch
db33945ab3 Document contribution rules.
* doc/HACKING (License policy): New.
* doc/DCO: New.
* AUTHORS: Change maintainer address.
2012-09-25 19:19:13 +02:00
Werner Koch
c62b79a1d6 Add gpgme_set_global_flag to help debugging
* src/gpgme.c (gpgme_set_global_flag): New.
* src/gpgme.h.in (gpgme_set_global_flag): New.
* src/gpgme.def, src/libgpgme.vers: Add new public function.
* src/debug.c (envvar_override): New.:
(_gpgme_debug_set_debug_envvar): New.
(debug_init): Take ENVVAR_OVERRIDE in account.
--

On Android envvars can't be used, thus we need another way to enable
GPGME debugging.  The new function allows this and may be used in the
future to implement similar things.
2012-09-25 15:38:26 +02:00
Werner Koch
139e798c87 Remove all trailing whitespace from source files
--
Command used:  sed -i 's,[ \t]*$,,' FILE
2012-09-25 15:29:49 +02:00
Marcus Brinkmann
83e74202cd Add two recent contributors. 2012-07-28 22:11:31 +02:00
Marcus Brinkmann
8384ccbd1a Fix sign error in position calculation for mem_seek.
* data-mem.c (mem_seek): Fix sign error in position calculation.
2012-07-28 22:06:09 +02:00
Marcus Brinkmann
434735f71e Allow null context on gpgme_set_locale.
* gpgme.c (gpgme_set_locale): Allow CTX to be a null pointer.
2012-07-28 01:17:03 +02:00
Werner Koch
e7aeaebb01 Do not include the removed file status-table.h
* src/engine-uiserver.c: Remove status-table.h which is not anymore
built.  Fixes bug#1412.
--

The file was actually removed from the code by 885243e0 but for
unknown reasons the missing file was not reported by "make distcheck".
2012-07-13 14:00:22 +02:00
Werner Koch
9f081da735 Make handling of new conf values more robust (bug#1413).
* src/engine-gpgconf.c (arg_to_data): Allow for NULL as value.string.
--

I was not able to replicate the problem.  However this patch makes the
code more robust and tolerates errors by the user.  IT should fix the
problem at hand.
2012-07-13 10:59:22 +02:00
Werner Koch
4751a0e1bc Post release updates.
--
2012-05-02 11:30:57 +02:00
Werner Koch
9c8608f702 Release 1.3.2.
* configure.ac: Bump LT version to C19/A8/R1.

* configure.ac (GITLOG_TO_CHANGELOG): Define.
* Makefile.am (gen-ChangeLog): Use it.
2012-05-02 11:18:24 +02:00
Werner Koch
295dd3f238 Remove unused pth stuff from gpgme-config.
* src/gpgme-config.in: Remove unused pth stuff.
2012-05-02 10:43:22 +02:00
Werner Koch
475640a527 Fix minor documentation problem.
--
Fixes bug#1404.
(There is mentioned data field “recipient”, but actual data field
name is “recipients”.)
2012-05-02 10:35:47 +02:00
Werner Koch
d6402b888f Update signature summary for the case of missing X.509 keys.
* src/verify.c (gpgme_op_verify_result): Update summary field.
--

This is actually a hack to solve the problem that GPGME currently does
not emit ERRSIG for a missing public key.
2012-05-02 10:30:09 +02:00
Werner Koch
1a21574b48 Fix timestamp parsing for y2038 hack.
* src/conversion.c (_gpgme_parse_timestamp): Set ENDP before year 2038
check.
2012-04-30 17:46:15 +02:00
Werner Koch
22de98b7a6 Remove trailing white space
--
2012-04-30 17:42:53 +02:00
W. Trevor King
4cb408d33e .gitignore: flesh out rules and add subdirectory-.gitignores. 2012-04-20 16:05:11 +02:00
W. Trevor King
62bbe58280 status-table.c: include string.h for strcmp.
* status-table.c: include string.h to avoid `warning: implicit
declaration of function 'strcmp'`.
2012-04-13 10:02:39 +02:00
W. Trevor King
c318e69d8f gpgme-tool: add help messages for a number of commands.
* src/gpgme-tool.c (hlp_engine, hlp_sub_protocol, hlp_armor, hlp_textmode,
hlp_include_certs, hlp_keylist_mode, hlp_input, hlp_output, hlp_message,
hlp_recipient, hlp_signer, hlp_signers_clear, hlp_decrypt, hlp_decrypt_verify,
hlp_encrypt, hlp_sign_encrypt, hlp_sign, hlp_verify, hlp_import): New strings.
(hlp_protocol): Fix typo.
(register_commands): Add documentation strings.
(doc): Mention Assuan.
2012-04-03 15:20:27 +02:00
W. Trevor King
bb62104adf uiserver.texi: fix decryption -> encryption typo in PREP_ENCRYPT discussion.
* doc/uiserver.texi (PREP_ENCRYPT): Fix documentation.
2012-04-03 15:15:05 +02:00
W. Trevor King
6ec9e21dd1 Update Werner Koch's distribution signing key in the README.
* README: Update signing key.
2012-04-03 15:10:52 +02:00
Marcus Brinkmann
ff0a640a18 Do not rely on glibc name of syscall.
* src/ath.c (ath_self): Use __NR_gettid, not SYS_gettid.
2012-03-12 16:37:26 +01:00
Marcus Brinkmann
ced1ad01ae Update config.guess and config.sub to latest version.
* config.guess, config.sub: Update to latest version.
2012-03-12 16:00:29 +01:00
Marcus Brinkmann
885243e054 Rework status table to be less dynamically generated.
* src/Makefile.am (EXTRA_DIST): Remove mkstatus.
(BUILT_SOURCE, MOSTLYCLEANFILES): Remove.
(main_sources): Remove status-table.h, extra-stati.h.
Add status-table.c.
(status-table.h): Remove rules for built source.
* src/decrypt.c: Don't include extra-stati.h.
* src/engine-gpg.c: Don't include status-table.h.
(status_cmp): Remove function.
(read_status): Use _gpgme_parse_status.
* src/engine-gpgsm.c: Don't include status-table.h.
(status_cmp, parse_status): Remove function.
(gpgsm_assuan_simple_command, status_handler): Use _gpgme_parse_status.
* src/engine-uiserver.c: Don't include status-table.h.
(status_cmp, parse_status): Remove function.
(uiserver_assuan_simple_command, status_handler): Use
_gpgme_parse_status.
* src/gpgme.h.in (gpgme_status_code_t): Add
GPGME_STATUS_DECRYPTION_INFO.
* src/util.h (_gpgme_status_init,_gpgme_parse_status): New declaration.
* src/status-table.c: New file.
* src/extra-stati.h, src/mkstatus: Files removed.
* version.c (do_subsystem_inits): Call _gpgme_status_init.
2012-02-14 13:34:44 +01:00
Marcus Brinkmann
dae3073aaa Use gpgme interface for error handling to avoid linking with gpg-error.
* tests/t-data.c, tests/run-export.c, tests/run-keylist.c,
tests/run-support.h, tests/run-verify.c, tests/gpg/t-decrypt-verify.c,
tests/gpg/t-edit.c, tests/gpg/t-eventloop.c, tests/gpg/t-keylist-sig.c,
tests/gpg/t-keylist.c, tests/gpg/t-support.h, tests/gpg/t-trustlist.c,
tests/gpg/t-verify.c, tests/gpg/t-wait.c, tests/gpgsm/cms-decrypt.c,
tests/gpgsm/cms-keylist.c, tests/gpgsm/t-keylist.c,
tests/gpgsm/t-support.h, tests/gpgsm/t-verify.c,
tests/opassuan/t-command.c: Use gpgme interface for gpg-error functions.
2012-02-08 15:26:17 +01:00
Marcus Brinkmann
0052a72f89 Link the thread test to pthread.
* tests/gpg/Makefile.am (t_thread1_LDADD): Add -lpthread.
2012-02-08 15:19:33 +01:00
Marcus Brinkmann
3f03897cbd Link gpgme-tool directly to libassuan, as it uses its interface.
* src/Makefile.am (gpgme_tool_LDADD): Add @LIBASSUAN_LIBS@.
2012-02-08 15:18:11 +01:00
Werner Koch
24a10a4af9 Support the mingw-w64 toolchain.
* autogen.sh (build-w32): Add i686-w64-mingw32 to the toolprefix.
2012-01-19 18:44:39 +01:00
Werner Koch
2f304957f5 Fix Solaris problems with ttyname_r.
* m4/gnupg-ttyname.m4: New.  Based on ttyname_r from gnulib.
* src/ttyname_r.c (_gpgme_ttyname_r): Rename from ttyname_r.
Implement hacks required for Solaris and possible other non-fully
Posix systems.
* src/util.h: Include unistd.h.  Redefine ttyname_r depending on
REPLACE_TTYNAME_R and put it into the gpgme name space.
--

Unfortunately we cant not use the ttyname_r replacement from gnulib
because we want to keep GPGME LGPLv2+.
2012-01-19 18:43:10 +01:00
Werner Koch
c96778297f Try to make configure.ac a bit smaller.
* configure.ac: Move header checks.
2012-01-19 16:05:31 +01:00
Werner Koch
574b087e84 For W32 use a build number instead of abbreviated commit id.
We would need to use a shortened commit id so that it fits into an 16
bit Windows variable.  Further it is a random number and not something
increasing.  Thus a build number made up from the day of the year and
the hour is much more useful to describe a build number for a specific
revision.
* configure.ac [W32]: Replace BUILD_REVISION by BUILD_NUMBER.
* src/versioninfo.rc.in: Ditto.
2012-01-19 16:04:19 +01:00
Werner Koch
a0149630ce Adjust configure.ac for modern autoconf.
* configure.ac: Minor cleanups.
2012-01-19 15:57:09 +01:00
Werner Koch
4cfddadcd0 Update to libtool 2.4.2
* ltmain.sh, m4/libtool.m4, m4/ltoptions.m4, m4/ltversion.m4,
* m4/lt~obsolete.m4: Update.
2012-01-19 15:30:52 +01:00