diff options
| author | Marcus Brinkmann <[email protected]> | 2009-11-10 09:07:19 +0000 | 
|---|---|---|
| committer | Marcus Brinkmann <[email protected]> | 2009-11-10 09:07:19 +0000 | 
| commit | 96cf17b15995c9b925f80a64dbd42c1305ca9895 (patch) | |
| tree | 364f15711af329ff9b3b207245516e1320fb3ba0 /src/engine.c | |
| parent | Fix last change. (diff) | |
| download | gpgme-96cf17b15995c9b925f80a64dbd42c1305ca9895.tar.gz gpgme-96cf17b15995c9b925f80a64dbd42c1305ca9895.zip | |
2009-11-10  Marcus Brinkmann  <[email protected]>
	* configure.ac: Activate UIServer if FD passing is enabled and
	Assuan is available.
m4/
2009-11-10  Marcus Brinkmann  <[email protected]>
	* libassuan.m4: Fix LIBASSUAN_VERSION.
src/
2009-11-10  Marcus Brinkmann  <[email protected]>
	* 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.
Diffstat (limited to 'src/engine.c')
| -rw-r--r-- | src/engine.c | 39 | 
1 files changed, 37 insertions, 2 deletions
| diff --git a/src/engine.c b/src/engine.c index 69128592..ecf23047 100644 --- a/src/engine.c +++ b/src/engine.c @@ -61,7 +61,12 @@ static struct engine_ops *engine_ops[] =      NULL,  #endif  #ifdef ENABLE_G13 -    &_gpgme_engine_ops_g13		/* Crypto VFS.  */ +    &_gpgme_engine_ops_g13,		/* Crypto VFS.  */ +#else +    NULL, +#endif +#ifdef ENABLE_UISERVER +    &_gpgme_engine_ops_uiserver		/* Crypto VFS.  */  #else      NULL  #endif @@ -200,7 +205,8 @@ gpgme_get_engine_info (gpgme_engine_info_t *info)  					GPGME_PROTOCOL_CMS,  					GPGME_PROTOCOL_GPGCONF,  					GPGME_PROTOCOL_ASSUAN, -					GPGME_PROTOCOL_G13 }; +					GPGME_PROTOCOL_G13, +					GPGME_PROTOCOL_UISERVER };        unsigned int proto;        for (proto = 0; proto < DIM (proto_list); proto++) @@ -550,6 +556,20 @@ _gpgme_engine_set_locale (engine_t engine, int category,    return (*engine->ops->set_locale) (engine->engine, category, value);  } + +gpgme_error_t +_gpgme_engine_set_protocol (engine_t engine, gpgme_protocol_t protocol) +{ +  if (!engine) +    return gpg_error (GPG_ERR_INV_VALUE); + +  if (!engine->ops->set_protocol) +    return gpg_error (GPG_ERR_NOT_IMPLEMENTED); + +  return (*engine->ops->set_protocol) (engine->engine, protocol); +} +   +  gpgme_error_t  _gpgme_engine_op_decrypt (engine_t engine, gpgme_data_t ciph,  			  gpgme_data_t plain) @@ -563,6 +583,21 @@ _gpgme_engine_op_decrypt (engine_t engine, gpgme_data_t ciph,    return (*engine->ops->decrypt) (engine->engine, ciph, plain);  } + +gpgme_error_t +_gpgme_engine_op_decrypt_verify (engine_t engine, gpgme_data_t ciph, +				 gpgme_data_t plain) +{ +  if (!engine) +    return gpg_error (GPG_ERR_INV_VALUE); + +  if (!engine->ops->decrypt_verify) +    return gpg_error (GPG_ERR_NOT_IMPLEMENTED); + +  return (*engine->ops->decrypt_verify) (engine->engine, ciph, plain); +} + +  gpgme_error_t  _gpgme_engine_op_delete (engine_t engine, gpgme_key_t key,  			 int allow_secret) | 
