Blame src/engine.h

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