Blame src/engine.h

Packit Service 672cf4
/* engine.h - GPGME engine interface.
Packit Service 672cf4
   Copyright (C) 2000 Werner Koch (dd9jn)
Packit Service 672cf4
   Copyright (C) 2001, 2002, 2003, 2004, 2010 g10 Code GmbH
Packit Service 672cf4
Packit Service 672cf4
   This file is part of GPGME.
Packit Service 672cf4
Packit Service 672cf4
   GPGME is free software; you can redistribute it and/or modify it
Packit Service 672cf4
   under the terms of the GNU Lesser General Public License as
Packit Service 672cf4
   published by the Free Software Foundation; either version 2.1 of
Packit Service 672cf4
   the License, or (at your option) any later version.
Packit Service 672cf4
Packit Service 672cf4
   GPGME is distributed in the hope that it will be useful, but
Packit Service 672cf4
   WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 672cf4
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 672cf4
   Lesser General Public License for more details.
Packit Service 672cf4
Packit Service 672cf4
   You should have received a copy of the GNU Lesser General Public
Packit Service 672cf4
   License along with this program; if not, write to the Free Software
Packit Service 672cf4
   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
Packit Service 672cf4
   02111-1307, USA.  */
Packit Service 672cf4
Packit Service 672cf4
#ifndef ENGINE_H
Packit Service 672cf4
#define ENGINE_H
Packit Service 672cf4
Packit Service 672cf4
#include "gpgme.h"
Packit Service 672cf4
Packit Service 672cf4
/* Flags used by the EXTRAFLAGS arg of _gpgme_engine_op_genkey.  */
Packit Service 672cf4
#define GENKEY_EXTRAFLAG_ARMOR      1
Packit Service 672cf4
#define GENKEY_EXTRAFLAG_REVOKE     2
Packit Service 672cf4
#define GENKEY_EXTRAFLAG_SETPRIMARY 4
Packit Service 672cf4
Packit Service 672cf4
Packit Service 672cf4
struct engine;
Packit Service 672cf4
typedef struct engine *engine_t;
Packit Service 672cf4
Packit Service 672cf4
typedef gpgme_error_t (*engine_status_handler_t) (void *priv,
Packit Service 672cf4
						  gpgme_status_code_t code,
Packit Service 672cf4
						  char *args);
Packit Service 672cf4
typedef gpgme_error_t (*engine_colon_line_handler_t) (void *priv, char *line);
Packit Service 672cf4
typedef gpgme_error_t (*engine_command_handler_t) (void *priv,
Packit Service 672cf4
						   gpgme_status_code_t code,
Packit Service 672cf4
						   const char *keyword,
Packit Service 672cf4
						   int fd, int *processed);
Packit Service 672cf4
typedef gpgme_error_t (*engine_assuan_result_cb_t) (void *priv,
Packit Service 672cf4
                                                    gpgme_error_t result);
Packit Service 672cf4
Packit Service 672cf4
/* Helper for gpgme_set_global_flag.  */
Packit Service 672cf4
int _gpgme_set_engine_minimal_version (const char *value);
Packit Service 672cf4
Packit Service 672cf4
/* Get a deep copy of the engine info and return it in INFO.  */
Packit Service 672cf4
gpgme_error_t _gpgme_engine_info_copy (gpgme_engine_info_t *r_info);
Packit Service 672cf4
Packit Service 672cf4
/* Release the engine info INFO.  */
Packit Service 672cf4
void _gpgme_engine_info_release (gpgme_engine_info_t info);
Packit Service 672cf4
Packit Service 672cf4
/* Set the engine info for the info list INFO, protocol PROTO, to the
Packit Service 672cf4
   file name FILE_NAME and the home directory HOME_DIR.  */
Packit Service 672cf4
gpgme_error_t _gpgme_set_engine_info (gpgme_engine_info_t info,
Packit Service 672cf4
				      gpgme_protocol_t praoto,
Packit Service 672cf4
				      const char *file_name,
Packit Service 672cf4
				      const char *home_dir);
Packit Service 672cf4
Packit Service 672cf4
Packit Service 672cf4
gpgme_error_t _gpgme_engine_new (gpgme_engine_info_t info,
Packit Service 672cf4
				 engine_t *r_engine);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_reset (engine_t engine);
Packit Service 672cf4
Packit Service 672cf4
gpgme_error_t _gpgme_engine_set_locale (engine_t engine, int category,
Packit Service 672cf4
					const char *value);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_set_protocol (engine_t engine,
Packit Service 672cf4
					  gpgme_protocol_t protocol);
Packit Service 672cf4
void _gpgme_engine_release (engine_t engine);
Packit Service 672cf4
void _gpgme_engine_set_status_cb (engine_t engine,
Packit Service 672cf4
                                  gpgme_status_cb_t cb, void *cb_value);
Packit Service 672cf4
void _gpgme_engine_set_status_handler (engine_t engine,
Packit Service 672cf4
				       engine_status_handler_t fnc,
Packit Service 672cf4
				       void *fnc_value);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_set_command_handler (engine_t engine,
Packit Service 672cf4
						 engine_command_handler_t fnc,
Packit Service 6c01f9
						 void *fnc_value,
Packit Service 6c01f9
						 gpgme_data_t data);
Packit Service 672cf4
gpgme_error_t
Packit Service 672cf4
_gpgme_engine_set_colon_line_handler (engine_t engine,
Packit Service 672cf4
				      engine_colon_line_handler_t fnc,
Packit Service 672cf4
				      void *fnc_value);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_decrypt (engine_t engine,
Packit Service 672cf4
                                        gpgme_decrypt_flags_t flags,
Packit Service 672cf4
                                        gpgme_data_t ciph,
Packit Service 672cf4
					gpgme_data_t plain,
Packit Service 672cf4
                                        int export_session_key,
Packit Service 672cf4
                                        const char *override_session_key,
Packit Service 672cf4
                                        int auto_key_retrieve);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_delete (engine_t engine, gpgme_key_t key,
Packit Service 672cf4
				       unsigned int flags);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_edit (engine_t engine, int type,
Packit Service 672cf4
				     gpgme_key_t key, gpgme_data_t out,
Packit Service 672cf4
				     gpgme_ctx_t ctx /* FIXME */);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_encrypt (engine_t engine,
Packit Service 672cf4
					gpgme_key_t recp[],
Packit Service 672cf4
					gpgme_encrypt_flags_t flags,
Packit Service 672cf4
					gpgme_data_t plain, gpgme_data_t ciph,
Packit Service 672cf4
					int use_armor);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_encrypt_sign (engine_t engine,
Packit Service 672cf4
					     gpgme_key_t recp[],
Packit Service 672cf4
					     gpgme_encrypt_flags_t flags,
Packit Service 672cf4
					     gpgme_data_t plain,
Packit Service 672cf4
					     gpgme_data_t ciph,
Packit Service 672cf4
					     int use_armor,
Packit Service 672cf4
					     gpgme_ctx_t ctx /* FIXME */);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_export (engine_t engine, const char *pattern,
Packit Service 672cf4
				       gpgme_export_mode_t mode,
Packit Service 672cf4
				       gpgme_data_t keydata, int use_armor);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_export_ext (engine_t engine,
Packit Service 672cf4
					   const char *pattern[],
Packit Service 672cf4
					   gpgme_export_mode_t mode,
Packit Service 672cf4
					   gpgme_data_t keydata,
Packit Service 672cf4
					   int use_armor);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_genkey (engine_t engine,
Packit Service 672cf4
                                       const char *userid, const char *algo,
Packit Service 672cf4
                                       unsigned long reserved,
Packit Service 672cf4
                                       unsigned long expires,
Packit Service 672cf4
                                       gpgme_key_t key, unsigned int flags,
Packit Service 672cf4
				       gpgme_data_t help_data,
Packit Service 672cf4
				       unsigned int extraflags,
Packit Service 672cf4
                                       gpgme_data_t pubkey,
Packit Service 672cf4
				       gpgme_data_t seckey);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_keysign (engine_t engine,
Packit Service 672cf4
                                        gpgme_key_t key, const char *userid,
Packit Service 672cf4
                                        unsigned long expires,
Packit Service 672cf4
                                        unsigned int flags,
Packit Service 672cf4
                                        gpgme_ctx_t ctx);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_tofu_policy (engine_t engine,
Packit Service 672cf4
                                            gpgme_key_t key,
Packit Service 672cf4
                                            gpgme_tofu_policy_t policy);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_import (engine_t engine,
Packit Service 672cf4
				       gpgme_data_t keydata,
Packit Service 672cf4
                                       gpgme_key_t *keyarray);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_keylist (engine_t engine,
Packit Service 672cf4
					const char *pattern,
Packit Service 672cf4
					int secret_only,
Packit Service 672cf4
					gpgme_keylist_mode_t mode,
Packit Service 672cf4
					int engine_flags);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_keylist_ext (engine_t engine,
Packit Service 672cf4
					    const char *pattern[],
Packit Service 672cf4
					    int secret_only,
Packit Service 672cf4
					    int reserved,
Packit Service 672cf4
					    gpgme_keylist_mode_t mode,
Packit Service 672cf4
					    int engine_flags);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_keylist_data (engine_t engine,
Packit Service 672cf4
					     gpgme_data_t data);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_sign (engine_t engine, gpgme_data_t in,
Packit Service 672cf4
				     gpgme_data_t out, gpgme_sig_mode_t mode,
Packit Service 672cf4
				     int use_armor, int use_textmode,
Packit Service 672cf4
				     int include_certs,
Packit Service 672cf4
				     gpgme_ctx_t ctx /* FIXME */);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_trustlist (engine_t engine,
Packit Service 672cf4
					  const char *pattern);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_verify (engine_t engine, gpgme_data_t sig,
Packit Service 672cf4
				       gpgme_data_t signed_text,
Packit Service 672cf4
				       gpgme_data_t plaintext,
Packit Service 672cf4
                                       gpgme_ctx_t ctx);
Packit Service 672cf4
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_getauditlog (engine_t engine,
Packit Service 672cf4
                                            gpgme_data_t output,
Packit Service 672cf4
                                            unsigned int flags);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_assuan_transact
Packit Service 672cf4
                (engine_t engine,
Packit Service 672cf4
                 const char *command,
Packit Service 672cf4
                 gpgme_assuan_data_cb_t data_cb,
Packit Service 672cf4
                 void *data_cb_value,
Packit Service 672cf4
                 gpgme_assuan_inquire_cb_t inq_cb,
Packit Service 672cf4
                 void *inq_cb_value,
Packit Service 672cf4
                 gpgme_assuan_status_cb_t status_cb,
Packit Service 672cf4
                 void *status_cb_value);
Packit Service 672cf4
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_conf_load (engine_t engine,
Packit Service 672cf4
					  gpgme_conf_comp_t *conf_p);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_conf_save (engine_t engine,
Packit Service 672cf4
					  gpgme_conf_comp_t conf);
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_conf_dir (engine_t engine,
Packit Service 672cf4
					 const char *what,
Packit Service 672cf4
					 char **result);
Packit Service 672cf4
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_query_swdb (engine_t engine,
Packit Service 672cf4
                                           const char *name,
Packit Service 672cf4
                                           const char *iversion,
Packit Service 672cf4
                                           gpgme_query_swdb_result_t result);
Packit Service 672cf4
Packit Service 672cf4
Packit Service 672cf4
void _gpgme_engine_set_io_cbs (engine_t engine,
Packit Service 672cf4
			       gpgme_io_cbs_t io_cbs);
Packit Service 672cf4
void _gpgme_engine_io_event (engine_t engine,
Packit Service 672cf4
			     gpgme_event_io_t type, void *type_data);
Packit Service 672cf4
Packit Service 672cf4
gpgme_error_t _gpgme_engine_cancel (engine_t engine);
Packit Service 672cf4
Packit Service 672cf4
gpgme_error_t _gpgme_engine_cancel_op (engine_t engine);
Packit Service 672cf4
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_passwd (engine_t engine, gpgme_key_t key,
Packit Service 672cf4
                                       unsigned int flags);
Packit Service 672cf4
Packit Service 672cf4
gpgme_error_t _gpgme_engine_set_pinentry_mode (engine_t engine,
Packit Service 672cf4
                                               gpgme_pinentry_mode_t mode);
Packit Service 672cf4
Packit Service 672cf4
gpgme_error_t _gpgme_engine_op_spawn (engine_t engine,
Packit Service 672cf4
                                      const char *file, const char *argv[],
Packit Service 672cf4
                                      gpgme_data_t datain,
Packit Service 672cf4
                                      gpgme_data_t dataout,
Packit Service 672cf4
                                      gpgme_data_t dataerr,
Packit Service 672cf4
                                      unsigned int flags);
Packit Service 672cf4
Packit Service 672cf4
/* The available engine option flags.  */
Packit Service 672cf4
#define GPGME_ENGINE_FLAG_OFFLINE        1
Packit Service 672cf4
Packit Service 672cf4
Packit Service 672cf4
#endif /* ENGINE_H */