Commit Graph

125 Commits

Author SHA1 Message Date
Marcus Brinkmann
77d8ea8916 2010-01-07 Marcus Brinkmann <marcus@g10code.de>
* gpgme-tool.c (result_xml_write_cb_t, struct result_xml_state):
	New types.
	(MAX_TAGS): New macro.
	(result_init, result_xml_indent, result_xml_tag_start)
	(result_xml_tag_data, result_xml_tag_end, result_add_error)
	(result_add_pubkey_algo, result_add_hash_algo, result_add_keyid)
	(result_add_fpr, result_add_timestamp, result_add_sig_mode)
	(result_add_value, result_add_string, result_encrypt_to_xml)
	(result_decrypt_to_xml, result_sign_to_xml)
	(result_verify_to_xml, result_import_to_xml)
	(result_genkey_to_xml, result_keylist_to_xml)
	(result_vfs_mount_to_xml): New functions.
	(gt_result): Rewritten.
2010-01-07 18:16:54 +00:00
Werner Koch
97c5d4d312 Add an API to change passphrases. Currently only implemented for
GPGSM.  Requires GnuPG 2.1
2010-01-05 17:36:53 +00:00
Marcus Brinkmann
7eb555370f 2009-12-22 Marcus Brinkmann <marcus@g10code.de>
* configure.ac: Do not use echo -n.  Test for __thread.

src/
2009-12-22  Marcus Brinkmann  <marcus@g10code.de>

	* debug.c: Test for TLS, not __GNUC__
2009-12-22 13:00:30 +00:00
Marcus Brinkmann
1094c0a5d3 2009-12-15 Marcus Brinkmann <marcus@g10code.de>
* assuan-support.c (my_spawn): Calloc, not malloc, the fd_items.
2009-12-15 01:01:40 +00:00
Werner Koch
31844d30cd Test on sgid process 2009-12-10 09:49:47 +00:00
Marcus Brinkmann
0a80f62089 2009-12-08 Marcus Brinkmann <marcus@g10code.de>
Update to libtool 2.2.6a.
	* configure.ac: Invoke AC_CONFIG_MACRO_DIR.
	(AC_LIBTOOL_WIN32_DLL, AC_LIBTOOL_RC): Replace by ...
	(LT_PREREQ, LT_INIT, LT_LANG): ... these.
	* config.guess, config.sub, install-sh, ltmain.sh, m4/libtool.m4:
	Updated to libtool 2.2.6a.
	* m4/ltoptions.m4, m4/ltsugar.m4, m4/ltversion.m4,
	m4/lt~obsolete.m4: New files from libtool 2.2.6a.

src/
2009-12-08  Marcus Brinkmann  <marcus@g10code.de>

	* Makefile.am (LTRCCOMPILE): Refactor with ...
	(RCCOMPILE): ... this new macro.
	(SUFFIXES): Add .lo.
	(gpgme_res_ldflag): Removed.
	(gpgme_res): Use libtool object file name here.
	(libgpgme_la_LDFLAGS): Remove gpgme_res_ldflag usage.
2009-12-08 21:38:22 +00:00
Marcus Brinkmann
24169052c1 2009-12-08 Marcus Brinkmann <marcus@g10code.de>
* ath.c (ath_self) [HAVE_W32_SYSTEM]: Fix typo.
2009-12-08 04:07:57 +00:00
Werner Koch
2cd1218b93 Small portability fix 2009-12-02 09:49:56 +00:00
Werner Koch
c2ee84a87a Add flags to the getauditlog command. 2009-12-01 11:21:47 +00:00
Werner Koch
dce41d1ffa Fix segv in printf like functions. 2009-12-01 11:00:27 +00:00
Marcus Brinkmann
56af8b77e6 2009-11-26 Marcus Brinkmann <marcus@g10code.de>
* opassuan.c (opassuan_start): Allocate result structure before
	beginning operation.
2009-11-26 17:53:06 +00:00
Marcus Brinkmann
ef640ca8ef 2009-11-25 Marcus Brinkmann <marcus@g10code.de>
* gpgme-tool.c (gpgme_server): Use assuan_fd_t and assuan_fdopen
	on fds.
2009-11-25 17:57:05 +00:00
Werner Koch
1cb08a35a6 Fixes for the UI server engine . 2009-11-17 13:06:05 +00:00
Marcus Brinkmann
aff1ed3fb6 2009-11-10 Marcus Brinkmann <marcus@g10code.de>
* op-support.c (_gpgme_op_reset): Instead of last change, only set
	sub protocol if it is not the default.
2009-11-10 18:05:04 +00:00
Werner Koch
d173e6e010 Make recipients command work. 2009-11-10 16:32:11 +00:00
Werner Koch
0fae16ae89 Pass fdpassing flag to assuan_socket_connect. 2009-11-10 15:04:12 +00:00
Marcus Brinkmann
e88c7782bf 2009-11-10 Marcus Brinkmann <marcus@g10code.de>
* gpgme.c (gpgme_new): Set default sub protocol.
	* gpgme-tool.c: Implement get sub protocol.
2009-11-10 14:54:39 +00:00
Marcus Brinkmann
cda07b9ab4 2009-11-10 Marcus Brinkmann <marcus@g10code.de>
* gpgme.h.in (gpgme_get_sub_protocol): Add prototype.
	* gpgme.def, libgpgme.vers: Add gpgme_get_sub_protocol.
	* context.h (struct gpgme_context): New member sub_protocol.
	* gpgme.c (gpgme_set_sub_protocol): Set CTX->sub_protocol.
	(gpgme_get_sub_protocol): New function.
	* op-support.c (_gpgme_op_reset): Set sub protocol.
2009-11-10 14:49:35 +00:00
Marcus Brinkmann
96cf17b159 2009-11-10 Marcus Brinkmann <marcus@g10code.de>
* configure.ac: Activate UIServer if FD passing is enabled and
	Assuan is available.

m4/
2009-11-10  Marcus Brinkmann  <marcus@g10code.de>

	* libassuan.m4: Fix LIBASSUAN_VERSION.

src/
2009-11-10  Marcus Brinkmann  <marcus@g10code.de>

	* Makefile.am (uiserver_components): New variable.
	(main_sources): Add it.
	* ops.h, key.c (_gpgme_key_append_name): Take CONVERT argument,
	implement it.  Adjust callers.
	(gpgme_key_from_uid): New function.
	* gpgme.h.in (gpgme_protocol_t): Add GPGME_PROTOCOL_DEFAULT.
	(gpgme_encrypt_flags_t): Add GPGME_ENCRYPT_PREPARE,
	GPGME_ENCRYPT_EXPECT_SIGN.
	(gpgme_set_sub_protocol, gpgme_key_from_uid): New functions.
	* libgpgme.vers, gpgme.def: Add new functions.
	* gpgme.c (gpgme_set_protocol): Add UIServer protocol.
	(gpgme_set_sub_protocol): New function.
	(gpgme_get_protocol_name): Add UIServer and default protocol.
	* assuan-support.c: Return correct error values, implement
	socketpair for POSIX.
	* priv-io.h, posix-io.c, w32-io.c, w32-glib-io.c,
	w32-qt-io.cpp (_gpgme_io_spawn): Add ATFORK and ATFORKVALUE
	arguments.  Implement it for POSIX.  Adjust all callers.
	* engine.h, engine-backend.h (_gpgme_engine_set_protocol)
	(_gpgme_engine_op_decrypt_verify): New prototypes.  Adjust all
	users.
	* engine.c (engine_ops, gpgme_get_engine_info): Add UIServer
	engine.
	(_gpgme_engine_set_protocol, _gpgme_engine_op_decrypt_verify): New
	function.
	* decrypt-verify.c (decrypt_verify_start): Call
	_gpgme_engine_op_decrypt_verify.
	* util.h, posix-util.c,
	w32-util.c (_gpgme_get_uiserver_socket_path): New function.
	* engine-gpgsm.c (gpgsm_set_fd): Fix _gpgme_io_pipe invocation.
	* gpgme-tool.c: Some support for UIServer protocol.
	* engine-uiserver.c: New file.
2009-11-10 09:07:19 +00:00
Marcus Brinkmann
37c1f0fe54 2009-11-09 Marcus Brinkmann <marcus@g10code.de>
* engine-gpgsm.c (gpgsm_new): Close server side FDs.
2009-11-09 21:17:58 +00:00
Marcus Brinkmann
75f035e9d0 2009-11-06 Marcus Brinkmann <marcus@g10code.de>
* gpgme-tool.c (struct gpgme_tool): New members write_data and
	write_data_hook.
	(gt_write_data): New function.
	(gt_result): Output vfs_mount result.
	(server_write_data): New function.
	(gpgme_server): Initialize write_data members.
2009-11-06 00:44:44 +00:00
Marcus Brinkmann
8acf819d40 2009-11-05 Marcus Brinkmann <marcus@g10code.de>
* engine-g13.c (struct engine_g13): Remove members RESULT_CB and
	RESULT_CB_VALUE.
	(g13_assuan_simple_command, status_handler): Don't use those anymore.
	(g13_transact): Remove them from argument list, too.
	* vfs-mount.c (_gpgme_vfs_mount_status_handler): New function.
	(_gpgme_op_vfs_mount): Pass it to transact.
2009-11-06 00:12:59 +00:00
Marcus Brinkmann
4babea46e7 2009-11-05 Marcus Brinkmann <marcus@g10code.de>
* engine-assuan.c (llass_new): Update use of assuan_socket_connect.
	* engine-gpgsm.c (gpgsm_new): Update use of assuan_pipe_connect.
	* engine-g13.c (g13_new): Likewise.
2009-11-05 12:10:04 +00:00
Marcus Brinkmann
59dc98545a 2009-11-05 Marcus Brinkmann <marcus@g10code.de>
* priv-io.h (IOSPAWN_FLAG_NOCLOSE): New flag.
	* w32-io.c (_gpgme_io_spawn): Implement this flag.
	* posix-io.c (_gpgme_io_spawn): Likewise.
	* w32-glib-io.c (_gpgme_io_spawn): Likewise.
	* assuan-support.c (my_spawn): Set this flag.
2009-11-05 02:39:31 +00:00
Marcus Brinkmann
65ecec1abe 2009-11-05 Marcus Brinkmann <marcus@g10code.de>
* decrypt.c (gpgme_op_decrypt_start): Fix use of debug macro.
	* decrypt-verify.c (gpgme_op_decrypt_verify_start): Likewise.
	* delete.c (gpgme_op_delete_start): Likewise.
	* edit.c (gpgme_op_edit_start, gpgme_op_card_edit_start):
	Likewise.
	* encrypt.c (gpgme_op_encrypt_start): Likewise.
	* encrypt-sign.c (gpgme_op_encrypt_sign_start): Likewise.
	* export.c (gpgme_op_export_start, gpgme_op_export_ext_start)
	(gpgme_op_export_keys_start, gpgme_op_export_keys): Likewise.
	* genkey.c (gpgme_op_genkey_start): Likewise.
	* getauditlog.c (gpgme_op_getauditlog_start): Likewise.
	* import.c (gpgme_op_import_start, gpgme_op_import_keys_start):
	Likewise.
	* opassuan.c (gpgme_op_assuan_transact_start): Likewise.
	* sign.c (gpgme_op_sign_start): Likewise.
	* verify.c (gpgme_op_verify_start): Likewise.
	* vfs-create.c (gpgme_op_vfs_create): Likewise.
	* vfs-mount.c (gpgme_op_vfs_mount): Likewise.
2009-11-05 02:17:07 +00:00
Marcus Brinkmann
49693e8e45 2009-11-04 Marcus Brinkmann <marcus@g10code.de>
* ath.h (ath_self): New prototype.  Include <stdint.h>
	* ath.c, ath-pth.c, ath-pthread.c (ath_self): New function.
	* debug.h: Rewrite most macros to beautify debug output.
	(_gpgme_debug_buffer): Remove tagname and tag argument.
	(_gpgme_debug_frame_begin, _gpgme_debug_frame_end): New prototypes.
	* debug.c: Include <time.h>.  Don't include assuan.h.
	(frame_nr, FRAME_NR): New thread-specific variable and macro.
	(debug_init): Do not initialize assuan.  Call _gpgme_debug after
	initialization instead using printf directly.
	(_gpgme_debug): Do not call debug_init (we now ensure proper
	initialization by user).  Add timestamp and thread/process ID.
	(_gpgme_debug_buffer): Do not take tagname and tag argument.
	(_gpgme_debug_frame_begin, _gpgme_debug_frame_end): New functions.
	* version.c (gpgme_check_version_internal, gpgme_check_version):
	Fix debug string.  Do not initialize assuan.
	* posix-io.c (get_max_fds): Use 0 not NULL (nicer debug output).
2009-11-04 18:13:44 +00:00
Werner Koch
574086bf19 Adjust for changed assuan_register_command. 2009-11-04 10:43:42 +00:00
Werner Koch
fc0fd88d7f Prepare for a new protocol.
Comment clarification.
2009-11-03 20:27:35 +00:00
Marcus Brinkmann
97932b102a 2009-11-03 Marcus Brinkmann <marcus@g10code.de>
* Makefile.am (main_sources): Change g13.c to vfs-mount.c.  Add
	vfs-create.c
	* vfs-create.c: New file.
	* g13.c: Renamed to ...
	* vfs-mount.c: ... this new file.
	* gpgme.h.in (gpgme_op_vfs_create): New prototype.
	* gpgme.def, libgpgme.vers: Add gpgme_op_vfs_create.
	* gpgme-tool.c (gt_vfs_create, cmd_vfs_create): New functions.
	(register_commands): Add VFS_CREATE and CREAET.
2009-11-03 19:15:35 +00:00
Marcus Brinkmann
490661821a 2009-11-02 Marcus Brinkmann <marcus@g10code.de>
* debug.h (_gpgme_debug_buffer): Make TAG argument const const.
	* debug.c (_gpgme_debug_buffer): Likewise.
	* gpgme-tool.c (input_notify, output_notify): Adjust type to new
	assuan interface.
	* decrypt.c (gpgme_op_decrypt_result): Remove unused variable.
	* opassuan.c (gpgme_op_assuan_transact): Fix return value.
2009-11-02 17:18:48 +00:00
Marcus Brinkmann
8c823dd784 2009-11-02 Marcus Brinkmann <marcus@g10code.de>
* opassuan.c (gpgme_op_assuan_transact): Fix return value.
2009-11-02 17:06:14 +00:00
Marcus Brinkmann
9d3fdd8c96 2009-10-30 Marcus Brinkmann <marcus@g10code.de>
* configure.ac: Check for argp.h and error_t.

src/
2009-10-30  Marcus Brinkmann  <marcus@g10code.de>

	* Makefile.am (noinst_PROGRAMS): New target gpgme-tool.
	(gpgme_tool_LDADD): New variable.
	* gpgme-tool.c: New file.
	* ops.h (_gpgme_sig_notation_clearm _gpgme_signers_clear): New
	prototypes.
	* gpgme.c (gpgme_set_protocol): Allow GPGME_PROTOCOL_GPGCONF (when
	had that gone missing?).
	(_gpgme_sig_notation_clear): New function without debug output.
	(gpgme_release): Call it and _gpgme_signers_clear.
	* signers.c (_gpgme_signers_clear): New function without debug output.
	* g13.c (gpgme_op_vfs_mount): Add debug output.
	* assuan-support.c (my_spawn): Allow fd_child_list to be NULL.
	* conversion.c (_gpgme_encode_percent_string): Fix infinite loop.
	* debug.h: Put tag in front of debug lines, should make for nicer
	output.
	* engine-assuan.c (llass_new): Use our new system hooks for libassuan.
	* engine-g13.c (g13_new): Remove redundant assuan context allocation.
	* version.c (gpgme_check_version_internal): Delay debug output
	until after gpgme_check_version was called.
2009-10-30 14:21:08 +00:00
Marcus Brinkmann
63200590ea 2009-10-28 Marcus Brinkmann <marcus@g10code.de>
* signers.c, encrypt-sign.c, encrypt.c, delete.c, keylist.c,
	edit.c, import.c, export.c: Fix last change in debug output.
2009-10-28 16:39:19 +00:00
Marcus Brinkmann
36e2c1a9d1 2009-10-27 Marcus Brinkmann <marcus@g10code.de>
* edit.c (gpgme_op_edit_start, gpgme_op_edit)
	(gpgme_op_card_edit_start, gpgme_op_card_edit): Add debug output.
	* encrypt-sign.c (gpgme_op_encrypt_sign_start)
	(gpgme_op_encrypt_sign): Likewise.
	* encrypt.c (gpgme_op_encrypt_start, gpgme_op_encrypt)
	(gpgme_op_encrypt_result): Likewise.
	* export.c (gpgme_op_export_start, gpgme_op_export)
	(gpgme_op_export_ext_start, gpgme_op_export_ext)
	(gpgme_op_export_keys_start, gpgme_op_export_keys): Likewise.
	* genkey.c (gpgme_op_genkey_start, gpgme_op_genkey)
	(gpgme_op_genkey_result): Likewise.
	* getauditlog.c (gpgme_op_getauditlog_start)
	(gpgme_op_getauditlog): Likewise.
	* import.c (gpgme_op_import_result, gpgme_op_import_start)
	(gpgme_op_import): Likewise.
	* keylist.c (gpgme_op_keylist_result, keylist_colon_handler)
	(gpgme_op_keylist_start, gpgme_op_keylist_ext_start)
	(gpgme_op_keylist_next, gpgme_op_keylist_end, gpgme_get_key): Likewise.
	* opassuan.c (gpgme_op_assuan_transact_start)
	(gpgme_op_assuan_transact_ext, gpgme_op_assuan_result)
	(gpgme_op_assuan_transact): Likewise.
	* signers.c (gpgme_signers_add, gpgme_signers_clear): Likewise.
	* trustlist.c (gpgme_op_trustlist_start)
	(gpgme_op_trustlist_next, gpgme_op_trustlist_end): Likewise.
	* verify.c (gpgme_op_verify_start, gpgme_op_verify)
	(gpgme_op_verify_result): Likewise.
2009-10-27 19:23:56 +00:00
Marcus Brinkmann
c8e934b276 2009-10-26 Marcus Brinkmann <marcus@g10code.de>
* configure.ac (NEED_GPG_VERSION_DEFAULT): Bump to 1.4.0 as 1.3.0
	was development versions only.

tests/
2009-10-26  Marcus Brinkmann  <marcus@g10code.de>

	* opassuan/t-command.c: Update to new interface.

src/
2009-10-26  Marcus Brinkmann  <marcus@g10code.de>

	* gpgme.h.in (struct gpgme_io_event_done_data)
	(gpgme_io_event_done_data_t): New types.
	(struct _gpgme_op_assuan_result): Deprecate the err member.
	(gpgme_op_assuan_result): Deprecate (for now).
	(gpgme_op_assuan_transact_ext): New prototype.
	(gpgme_op_assuan_transact): Deprecate.
	(struct _gpgme_op_g13_result): Replace with ...
	(struct _gpgme_op_vfs_mount_result): ... this.
	(gpgme_op_g13_mount): Replace with ...
	(gpgme_op_vfs_mount): ... this.
	* gpgme.def (gpgme_op_assuan_transact_ext, gpgme_wait_ext)
	(gpgme_op_vfs_mount_result, gpgme_op_vfs_mount): New.
	(gpgme_op_g13_mount): Remove.
	* libgpgme.vers: Likewise.
	* engine-backend.h (struct engine_ops): Remove RESULT_CB and
	RESULT_CB_VALUE args in opassuan_transact member.  Add CANCEL_OP
	member.
	* ops.h (_gpgme_cancel_with_err, _gpgme_wait_on_condition): Add
	OP_ERR argument.
	(_gpgme_wait_one_ext): New prototype.
	* context.h (ctx_op_data_id_t): Add OPDATA_VFS_MOUNT.
	* engine-g13.c (g13_cancel_op): New function.
	(parse_status): Remove declaration.
	(g13_assuan_simple_command): Do nothing with status lines for now.
	(status_handler): Update opaque value access.
	(_gpgme_engine_ops_g13): Add new cancel_op member.
	* gpgme.c (_gpgme_cancel_with_err): Add new parameter OP_ERR.
	Handle operational errors.
	(gpgme_cancel, gpgme_io_read, gpgme_io_write): Add debug output.
	* data.c (_gpgme_data_inbound_handler)
	(_gpgme_data_outbound_handler): Adjust opaque value access.
	* engine-gpg.c (command_handler, status_handler)
	(colon_line_handler): Likewise.
	* engine-gpgsm.c (status_handler): Likewise.
	* engine-gpg.c (_gpgme_engine_ops_gpg): Add cancel_op member.
	* engine-gpgsm.c (_gpgme_engine_ops_gpgsm): Likewise.
	* g13.c: Rewritten (and will be rewritten again).
	* engine.h (_gpgme_engine_op_assuan_transact): Remove result_cb
	and result_cb_value parameters from prototype.
	(_gpgme_engine_cancel_op): New prototype.
	* engine.c (engine_ops) [! ENABLE_ASSUAN]: Add missing comma.
	(_gpgme_engine_op_assuan_transact): Remove result_cb and
	result_cb_value parameter.
	(_gpgme_engine_cancel_op): New function.
	* wait.h (_gpgme_run_io_cb): Add new argument OP_ERR.
	(struct io_cb_data): New struct to pass opaque data and get a
	op_err return value.  Needed because we can't modify I/O callback
	handler signature because it is exposed to the user.
	* wait.c (_gpgme_run_io_cb): Add OP_ERR parameter.  Handle
	operational errors.
	* wait-user.c (_gpgme_user_io_cb_handler): Handle operational
	errors.
	* wait-private.c (_gpgme_wait_on_condition): New argument to
	retrieve the operational result.  Handle operational errors in
	session based protocols.
	(_gpgme_wait_one_ext): New function.
	(_gpgme_wait_one): Pass argument in invocation of
	_gpgme_wait_on_condition.
	* wait-global.c (struct ctx_list_item): Add member OP_ERR.
	(ctx_done): New argument OP_ERR.
	(ctx_wait): New argument OP_ERR.
	(gpgme_wait_ext): New function based on gpgme_wait but handling
	operational errors.
	(gpgme_wait): Implement in term of gpgme_wait_ext.
	* keylist.c (gpgme_op_keylist_next): Pass argument in invocation
	of _gpgme_wait_on_condition.
	* trustlist.c (gpgme_op_trustlist_next): Pass argument in
	invocation of _gpgme_wait_on_condition.
	* engine-assuan.c (struct engine_llass): Replace members RESULT_CB
	and RESULT_CB_VALUE by LAST_OP_ERR.
	(_gpgme_engine_assuan_last_op_err): Add this hack function.
	(llass_cancel_op): New function.
	(_gpgme_engine_llass_ops): Add cancel_op member.
	(llass_status_handler): Update opaque value access.
	(llass_transact): Remove RESULT_CB and RESULT_CB_VALUE arguments.
	* opassuan.c: Move compat hacks to the end of file.
	(opassuan_start): Do not set OPD->result.err.
	Do not pass RESULT_Cb and CTX to _gpgme_engine_op_assuan_transact.
	(gpgme_op_assuan_transact_ext): New function.
2009-10-26 18:52:32 +00:00
Marcus Brinkmann
ca67902311 2009-10-26 Marcus Brinkmann <marcus@g10code.de>
* debug.h (DEBUG_GLOBAL): New debug level.
	* conversion.c (gnupg_errors, _gpgme_map_gnupg_error): Removed.
	* data-user.c (gpgme_data_new_from_cbs): Add debug output.
	* data-fd.c (gpgme_data_new_from_fd): Likewise.
	* data-stream.c (gpgme_data_new_from_stream): Likewise.
	* decrypt.c (gpgme_op_decrypt_result, gpgme_op_decrypt_start)
	(gpgme_op_decrypt): Likewise.
	* delete.c (gpgme_op_delete_start, gpgme_op_delete): Likewise.
	* decrypt-verify.c (gpgme_op_decrypt_verify_start)
	(gpgme_op_decrypt_verify): Likewise.
	* sign.c (gpgme_op_sign_result): Fix debug message.
	* data-mem.c (gpgme_data_new): Improve debug output.
	* verify.c (parse_trust): Use atoi instead of
	_gpgme_map_gnupg_error.
	* decrypt.c (_gpgme_decrypt_status_handler): Likewise.
2009-10-26 17:38:39 +00:00
Marcus Brinkmann
a6f3857128 2009-10-22 Marcus Brinkmann <marcus@g10code.de>
* configure.ac: Add support for G13.

src/
2009-10-22  Marcus Brinkmann  <marcus@g10code.de>

	* Makefile.am: Remove @NETLIBS@ from LIBADDs.
	(g13_components): New variable.
	(main_sources): Add $(g13_components).
	* g13.c, engine-g13.c: New files.
	* engine.c (engine_ops): Check for assuan for assuan engine, add
	g13 engine.
	* util.h (_gpgme_get_g13_path, _gpgme_encode_percent_string): New
	prototypes.
	* conversion.c (_gpgme_encode_percent_string): New function.
	* gpgme.h.in (gpgme_protocol_t): Add GPGME_PROTOCOL_G13.
	(struct _gpgme_op_g13_result, gpgme_g13_result_t): New types.
	(gpgme_op_g13_mount): New function.
	* gpgme.def, libgpgme.vers: Add gpgme_op_g13_mount.
	* gpgme.c (gpgme_set_protocol): Allow GPGME_PROTOCOL_G13.
	(gpgme_get_protocol_name): Add GPGME_PROTOCOL_G13.
	* posix-util.c (_gpgme_get_g13_path): New function.
	* w32-util.c (_gpgme_get_g13_path): New function.
	* engine-backend.h (_gpgme_engine_ops_g13): New declaration.
2009-10-22 16:44:07 +00:00
Marcus Brinkmann
06d5e93367 2009-10-20 Marcus Brinkmann <marcus@g10code.de>
* gpgme-config.in (netlibs): Remove.
	(assuan_cflags, assuan_libs): Add.
2009-10-20 15:54:01 +00:00
Marcus Brinkmann
e782b1ab06 2009-10-20 Marcus Brinkmann <marcus@g10code.de>
* configure.ac: Replace internal libassuan by external libassuan.
	* m4/libassuan.m4: New file.
	* Makefile.am (assuan): Remove variable.
	(SUBDIRS): Remove ${assuan}.
	* assuan/: Removed.

src/
2009-10-20  Marcus Brinkmann  <marcus@g10code.de>

	* Makefile.am (assuan_cppflags, assuan_libobjs): Removed.
	(gpgsm_components): Move engine-assuan.c to ...
	(assuan_components): ... this new variable.
	(main_sources): Add this new variable.
	(AM_CPPFLAGS): Remove $(assuan_cppflags).
	(AM_CFLAGS): Add @LIBASSUAN_CFLAGS@.
	(libgpgme_la_DEPENDENCIES, libgpgme_pth_la_DEPENDENCIES)
	(libgpgme_glib_la_DEPENDENCIES, libgpgme_qt_la_DEPENDENCIES)
	(libgpgme_pthread_la_DEPENDENCIES): Remove $(assuan_libobjs).
	(libgpgme_la_LIBADD, libgpgme_pth_la_LIBADD)
	(libgpgme_glib_la_LIBADD, libgpgme_qt_la_LIBADD))
	(libgpgme_pthread_la_LIBADD): Replace $(assuan_libobjs) by
	@LIBASSUAN_LIBS@.
	* priv-io.h [!HAVE_W32_SYSTEM]: Declare _gpgme_io_recvmsg,
	_gpgme_io_sendmsg, _gpgme_io_waitpid.
	* engine-backend.h: Define with [ENABLE_ASSUAN] instead
	of [ENABLE_GPGSM].
	* posix-io.c (_gpgme_io_waitpid): Make non-static.
	* util.h (ENABLE_ASSUAN): Declar _gpgme_assuan_system_hooks,
	_gpgme_assuan_malloc_hooks, _gpgme_assuan_log_cb.
	* engine-gpgsm.c: Don't map assuan error codes.  Use
	assuan_release instead of assuan_disconnect.
	(map_assuan_error): Remove function.
	(gpgsm_new): Use new assuan context interface.
	* engine-assuan.c: Use assuan_release instead of
	assuan_disconnect.
	(llass_new): Use new assuan context interface.
2009-10-20 15:39:15 +00:00
Werner Koch
aa747b1575 Fix last change for Windows. 2009-10-07 11:17:57 +00:00
Werner Koch
35b25decde Better detection for signature creation failure. 2009-08-06 19:09:10 +00:00
Werner Koch
0fcf3ee915 Fix detection of invalid signer keys.
Support the new INV_SGNR status code.
2009-08-06 17:17:18 +00:00
Werner Koch
b996b0540a Inmplement import from keys for GPGSM.
Add option --cms to run-keylist test program.
2009-07-07 14:33:10 +00:00
Werner Koch
3bd2d76417 * engine-gpgsm.c (gpgsm_import): Return an error for unknown data
encodings.
2009-07-07 12:38:18 +00:00
Marcus Brinkmann
1c454aee81 2009-06-22 Marcus Brinkmann <marcus@g10code.de>
* configure.ac: Add AC_TYPE_UINTPTR_T.

	* assuan/assuan.h [_ASSUAN_IN_GPGME_BUILD_ASSUAN]: Declare
	_gpgme_io_connect.

src/
2009-06-22  Marcus Brinkmann  <marcus@g10code.de>

	* debug.h: Everywhere, use %p instead of 0x%x to print pointer.
	[HAVE_STDINT_H]: Include <stdint.h>.
	(_TRACE, TRACE, TRACE0, TRACE1, TRACE2, TRACE3, TRACE6): Cast tag
	to (uintptr_t) before casting it to (void*) to silence GCC
	warning.

	* gpgme.h.in (_GPGME_DEPRECATED_OUTSIDE_GPGME): New macro.
	* sign.c (_GPGME_IN_GPGME): Define it.
	* keylist.c (_GPGME_IN_GPGME): Define it.

	* debug.c (_gpgme_debug_begin, _gpgme_debug_add): Handle error in
	vasprintf and asprintf.

	* priv-io.h: Include <sys/socket.h>.  Declare _gpgme_io_connect.

tests/
2009-06-22  Marcus Brinkmann  <marcus@g10code.de>

	* gpg/t-support.h (passphrase_cb): Implement write() according to
	the book to silence compiler warning.
	* gpgsm/t-support.h (passphrase_cb): Likewise.
2009-06-22 14:50:17 +00:00
Marcus Brinkmann
70323bb33a 2009-06-18 Marcus Brinkmann <marcus@g10code.de>
* gpgme.h.in (GPGME_CONF_PATHNAME): Revert last change, it's
	back! (GPA still uses it...).
2009-06-18 17:04:12 +00:00
Marcus Brinkmann
e6ff9579ba 2009-06-18 Marcus Brinkmann <marcus@g10code.de>
* gpgme.def: Fix stupid typo.
	* w32-io.c (_gpgme_io_pipe): Add missing declaration.
2009-06-18 16:51:56 +00:00
Marcus Brinkmann
0d77c1a3aa 2009-06-18 Marcus Brinkmann <marcus@g10code.de>
* gpgme.h.in (GPGME_CONF_PATHNAME): Remove obsolete macro.

	* w32-io.c (_gpgme_io_pipe): Allocate reader/writer thread right
	away.
	(_gpgme_io_read, _gpgme_io_write, _gpgme_io_select)
	(_gpgme_io_dup): Never allocate threads here.
	(find_writer, find_reader): Check return value of thread creation
	function.
2009-06-18 13:41:48 +00:00
Marcus Brinkmann
3ab899f41c 2009-06-18 Marcus Brinkmann <marcus@g10code.de>
* context.h (CTX_OP_DATA_MAGIC): New macro.
	(struct ctx_op_data): New member MAGIC.
	* op-support.c (_gpgme_op_data_lookup): Initialize magic.
	* gpgme.c (gpgme_result_unref, gpgme_result_ref): Check magic.
2009-06-18 12:38:55 +00:00
Marcus Brinkmann
9c17b3343b 2009-06-16 Marcus Brinkmann <marcus@g10code.de>
* gpgme.c (gpgme_result_unref): Hot fix to release a lock.
2009-06-17 13:42:52 +00:00
Werner Koch
bebd9cbe29 Add support for gpg --fetch-keys. 2009-06-16 15:42:37 +00:00
Marcus Brinkmann
3320cc1742 doc/
2009-06-16  Marcus Brinkmann  <marcus@g10code.de>

	* gpgme.texi (Result Management): New section.

src/
2009-06-16  Marcus Brinkmann  <marcus@g10code.de>

	* gpgme.c (result_ref_lock): New global variable.
	(gpgme_result_ref, gpgme_result_unref): use it.
2009-06-16 14:43:38 +00:00
Werner Koch
b872605941 Add new functions to import and export keys specified by gpgme_key_t.
Allow  exporting keys to a keyserver.
2009-06-16 11:42:21 +00:00
Marcus Brinkmann
59eecf421e 2009-06-15 Marcus Brinkmann <marcus@g10code.de>
* gpgme.h.in (gpgme_result_ref, gpgme_result_unref): Add
	prototypes.
	* gpgme.def, libgpgme.vers (gpgme_result_ref, gpgme_result_unref):
	Add these.
	* context.h (struct ctx_op_data): Add member "references".
	* gpgme.c (gpgme_result_ref, gpgme_result_unref): New functions.
	(_gpgme_release_result): Use gpgme_result_unref.
	* op-support.c (_gpgme_op_data_lookup): Initialize references.
2009-06-15 17:05:47 +00:00
Werner Koch
148f51bb3e Improved W32 SetForegroundWindow hacks. 2009-06-12 16:58:45 +00:00
Werner Koch
f4e35be325 Fix possible assert in the card edit. 2009-06-09 18:59:45 +00:00
Werner Koch
caf36ce1ce Add gpgme_io_write and gpgme_io_read.
Minor cleanups.
2009-06-09 16:01:02 +00:00
Werner Koch
621ffc14ae Do not distribute gpgme.h. 2009-06-09 12:44:35 +00:00
Werner Koch
4280710f33 Define error code. 2009-06-09 12:13:28 +00:00
Marcus Brinkmann
bdb7bcf938 doc/
2009-05-28  Marcus Brinkmann  <marcus@g10code.de>

	* gpgme.texi (Library Version Check): Document selftest error.
	(Creating Contexts): Likewise.

src/
2009-05-28  Marcus Brinkmann  <marcus@g10code.de>

	* gpgme.h.in (gpgme_check_version_internal): New prototype.
	(gpgme_check_version): New macro, overriding function of the same
	name.
	* libgpgme.vers, gpgme.def: Add gpgme_check_version_internal.o
	* context.h (_gpgme_selftest): New variable declaration.
	* version.c: Include "context.h".
	(gpgme_check_version): Set _gpgme_selftest on success.
	(gpgme_check_version_internal): New function.
	* gpgme.c (_gpgme_selftest): Define it.
	(gpgme_new): Check the selftest result.
2009-05-28 15:16:01 +00:00
Marcus Brinkmann
2c5d801fc4 doc/
2009-05-18  Marcus Brinkmann  <marcus@g10code.de>

        * gpgme.texi (Encrypting a Plaintext): Document                                             
        GPGME_ENCRYPT_NO_ENCRYPT_TO.                                                                
                                                                                                    
src/                                                                                                
2009-05-18  Marcus Brinkmann  <marcus@g10code.de>                                                   
                                                                                                    
        * gpgme.h.in (gpgme_encrypt_flags_t): Add                                                   
        GPGME_ENCRYPT_NO_ENCRYPT_TO.                                                                
        * engine-gpg.c (gpg_encrypt): Pass --no-encrypt-to to gpg if                                
        GPGME_ENCRYPT_NO_ENCRYPT_TO flag is set.
2009-05-18 17:38:31 +00:00
Werner Koch
63ebab659e * gpgme.h.in (gpgme_status_code_t): Explicitly initialize for
better maintainability and to help debugging.
2009-05-14 07:40:51 +00:00
Marcus Brinkmann
065a0a3f6d 2009-05-05 Marcus Brinkmann <marcus@g10code.de>
* configure.ac: Add infrastructure for compile time check of
	_FILE_OFFSET_BITS.

src/
2009-05-05  Marcus Brinkmann  <marcus@g10code.de>

	* gpgme.h.in: Add compile time check for _FILE_OFFSET_BITS.
2009-05-05 17:03:33 +00:00
Marcus Brinkmann
2dce8370e7 2009-04-15 Marcus Brinkmann <marcus@g10code.de>
* posix-io.c (_gpgme_io_socket, _gpgme_io_connect): New functions.
	* w32-io.c (_gpgme_io_connect): Fix stupid error.
2009-04-15 12:04:21 +00:00
Marcus Brinkmann
d255b4bec9 assuan/
2009-04-08  Marcus Brinkmann  <marcus@g10code.de>

	* assuan.h (_gpgme_io_socket): New prototype.
	(_ASSUAN_CUSTOM_IO, _assuan_custom_close, _assuan_custom_read)
	(_assuan_custom_write, _assuan_custom_pipe, _assuan_custom_socket)
	(_assuan_custom_connect): New macros.
	* assuan-socket.c (_assuan_close, _assuan_sock_new)
	(_assuan_sock_connect) [_ASSUAN_CUSTOM_IO]: Use custom I/O function.
	* assuan-buffer.c (assuan_read_line): Do not handle EAGAIN anymore.
	* assuan-client.c (_assuan_read_from_server): Likewise.
	* assuan-handler.c (process_next): Likewise
	* assuan-inquire.c (assuan_inquire): Likewise.

src/
2009-04-08  Marcus Brinkmann  <marcus@g10code.de>

	* w32-glib-io.c (giochannel_table): New members used, fd, socket.
	(find_channel): Drop CREATE argument.
	(new_dummy_channel_from_fd, new_channel_from_fd)
	(new_channel_from_socket): New functions.
	(_gpgm_io_fd2str): Implement for sockets.
	(_gpgme_io_write, _gpgme_io_read): Translate EAGAIN errors
	correctly.
	(_gpgme_io_pipe): Fix for new channel bookkeeping.
	(_gpgme_io_close, _gpgme_io_dup): Likewise.
	(wsa2errno, _gpgme_io_socket, _gpgme_io_connect): New.
	* w32-io.c (MAX_READERS, MAX_WRITERS): Bump up to 40.
	(wsa2errno, _gpgme_io_socket, _gpgme_io_connect): New.
	* w32-qt-io.cpp (_gpgme_io_socket, _gpgme_io_connect): New stubs.
	* version.c [HAVE_W32_SYSTEM]: Include "windows.h.
	(do_subsystem_inits) [HAVE_W32_SYSTEM]: Call WSAStartup.
	* engine-assuan.c (llass_status_handler): Ignore EAGAIN errors.
2009-04-08 18:53:57 +00:00
Werner Koch
aceb60d4dd Add GPGME_KEYLIST_MODE_EPHEMERAL. 2009-03-18 11:19:29 +00:00
Werner Koch
f8b80c55f4 Fix locale problem, e.g. for et_ET. 2009-03-13 14:19:55 +00:00
Werner Koch
f0dccac380 Chnaged the op-assuan interface. 2009-02-24 15:13:01 +00:00
Werner Koch
d118b5a2ee Fix spawn prototype for w32 glib and qt versions. 2009-02-04 16:48:25 +00:00
Werner Koch
259cbefd5c Provide inforation about smartcards. 2009-02-04 09:51:43 +00:00
Werner Koch
d951cb713f First take on the low-level assuan interface. 2009-01-26 10:21:10 +00:00
Werner Koch
23022dd9d9 Renamed rungpg.c to engine-gpg.c for conistency. 2009-01-19 14:44:13 +00:00
Marcus Brinkmann
6216d73611 2008-12-03 Marcus Brinkmann <marcus@g10code.de>
* Makefile.am (status-table.h): Use $(builddir) to find gpgme.h.
2008-12-03 14:24:03 +00:00
Werner Koch
92394f92d4 Fix SIGPIPE ignoring regression.
Fix unsupported algorithm detection.
2008-11-18 11:12:36 +00:00
Marcus Brinkmann
66d0fa1973 008-11-03 Marcus Brinkmann <marcus@g10code.com>
* configure.ac: Replace gpgme paths with src.
        * gpgme: Move to ...
        * src: ... this new directory.

assuan/
2008-11-03  Marcus Brinkmann  <marcus@g10code.com>

	* Makefile.am (INCLUDES): Replace gpgme path with src.

tests/
2008-11-03  Marcus Brinkmann  <marcus@g10code.com>

        * gpgsm/Makefile.am (INCLUDES, LDADD): Replace gpgme path with src.
        * gpg/Makefile.am (INCLUDES, LDADD, t_thread1_LDADD): Likewise.
	* Makefile.am (LDADD): Likewise.
2008-11-03 17:24:09 +00:00