summaryrefslogtreecommitdiff
path: root/src/engine.h
blob: dfc73acc966145d656076f7ed6e1107305cfa3c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
/* engine.h - GPGME engine interface.
   Copyright (C) 2000 Werner Koch (dd9jn)
   Copyright (C) 2001, 2002, 2003, 2004, 2010 g10 Code GmbH
 
   This file is part of GPGME.
 
   GPGME is free software; you can redistribute it and/or modify it
   under the terms of the GNU Lesser General Public License as
   published by the Free Software Foundation; either version 2.1 of
   the License, or (at your option) any later version.
   
   GPGME is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.
   
   You should have received a copy of the GNU Lesser General Public
   License along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
   02111-1307, USA.  */

#ifndef ENGINE_H
#define ENGINE_H

#include "gpgme.h"
 
struct engine;
typedef struct engine *engine_t;

typedef gpgme_error_t (*engine_status_handler_t) (void *priv,
						  gpgme_status_code_t code,
						  char *args);
typedef gpgme_error_t (*engine_colon_line_handler_t) (void *priv, char *line);
typedef gpgme_error_t (*engine_command_handler_t) (void *priv,
						   gpgme_status_code_t code,
						   const char *keyword,
						   int fd, int *processed);
typedef gpgme_error_t (*engine_assuan_result_cb_t) (void *priv,
                                                    gpgme_error_t result);


/* Get a deep copy of the engine info and return it in INFO.  */
gpgme_error_t _gpgme_engine_info_copy (gpgme_engine_info_t *r_info);

/* Release the engine info INFO.  */
void _gpgme_engine_info_release (gpgme_engine_info_t info);

/* Set the engine info for the info list INFO, protocol PROTO, to the
   file name FILE_NAME and the home directory HOME_DIR.  */
gpgme_error_t _gpgme_set_engine_info (gpgme_engine_info_t info,
				      gpgme_protocol_t praoto,
				      const char *file_name,
				      const char *home_dir);


gpgme_error_t _gpgme_engine_new (gpgme_engine_info_t info,
				 engine_t *r_engine);
gpgme_error_t _gpgme_engine_reset (engine_t engine);

gpgme_error_t _gpgme_engine_set_locale (engine_t engine, int category,
					const char *value);
gpgme_error_t _gpgme_engine_set_protocol (engine_t engine,
					  gpgme_protocol_t protocol);
void _gpgme_engine_release (engine_t engine);
void _gpgme_engine_set_status_handler (engine_t engine,
				       engine_status_handler_t fnc,
				       void *fnc_value);
gpgme_error_t _gpgme_engine_set_command_handler (engine_t engine,
						 engine_command_handler_t fnc,
						 void *fnc_value,
						 gpgme_data_t data);
gpgme_error_t
_gpgme_engine_set_colon_line_handler (engine_t engine,
				      engine_colon_line_handler_t fnc,
				      void *fnc_value);
gpgme_error_t _gpgme_engine_op_decrypt (engine_t engine, gpgme_data_t ciph,
					gpgme_data_t plain);
gpgme_error_t _gpgme_engine_op_decrypt_verify (engine_t engine,
					       gpgme_data_t ciph,
					       gpgme_data_t plain);
gpgme_error_t _gpgme_engine_op_delete (engine_t engine, gpgme_key_t key,
				       int allow_secret);
gpgme_error_t _gpgme_engine_op_edit (engine_t engine, int type,
				     gpgme_key_t key, gpgme_data_t out,
				     gpgme_ctx_t ctx /* FIXME */);
gpgme_error_t _gpgme_engine_op_encrypt (engine_t engine,
					gpgme_key_t recp[],
					gpgme_encrypt_flags_t flags,
					gpgme_data_t plain, gpgme_data_t ciph,
					int use_armor);
gpgme_error_t _gpgme_engine_op_encrypt_sign (engine_t engine,
					     gpgme_key_t recp[],
					     gpgme_encrypt_flags_t flags,
					     gpgme_data_t plain,
					     gpgme_data_t ciph,
					     int use_armor,
					     gpgme_ctx_t ctx /* FIXME */);
gpgme_error_t _gpgme_engine_op_export (engine_t engine, const char *pattern,
				       gpgme_export_mode_t mode,
				       gpgme_data_t keydata, int use_armor);
gpgme_error_t _gpgme_engine_op_export_ext (engine_t engine,
					   const char *pattern[],
					   gpgme_export_mode_t mode,
					   gpgme_data_t keydata,
					   int use_armor);
gpgme_error_t _gpgme_engine_op_genkey (engine_t engine,
				       gpgme_data_t help_data,
				       int use_armor, gpgme_data_t pubkey,
				       gpgme_data_t seckey);
gpgme_error_t _gpgme_engine_op_import (engine_t engine,
				       gpgme_data_t keydata,
                                       gpgme_key_t *keyarray);
gpgme_error_t _gpgme_engine_op_keylist (engine_t engine,
					const char *pattern,
					int secret_only,
					gpgme_keylist_mode_t mode);
gpgme_error_t _gpgme_engine_op_keylist_ext (engine_t engine,
					    const char *pattern[],
					    int secret_only,
					    int reserved,
					    gpgme_keylist_mode_t mode);
gpgme_error_t _gpgme_engine_op_sign (engine_t engine, gpgme_data_t in,
				     gpgme_data_t out, gpgme_sig_mode_t mode,
				     int use_armor, int use_textmode,
				     int include_certs,
				     gpgme_ctx_t ctx /* FIXME */);
gpgme_error_t _gpgme_engine_op_trustlist (engine_t engine,
					  const char *pattern);
gpgme_error_t _gpgme_engine_op_verify (engine_t engine, gpgme_data_t sig,
				       gpgme_data_t signed_text,
				       gpgme_data_t plaintext);

gpgme_error_t _gpgme_engine_op_getauditlog (engine_t engine,
                                            gpgme_data_t output,
                                            unsigned int flags);
gpgme_error_t _gpgme_engine_op_assuan_transact 
                (engine_t engine, 
                 const char *command,
                 gpgme_assuan_data_cb_t data_cb,
                 void *data_cb_value,
                 gpgme_assuan_inquire_cb_t inq_cb,
                 void *inq_cb_value,
                 gpgme_assuan_status_cb_t status_cb,
                 void *status_cb_value);

gpgme_error_t _gpgme_engine_op_conf_load (engine_t engine,
					  gpgme_conf_comp_t *conf_p);
gpgme_error_t _gpgme_engine_op_conf_save (engine_t engine,
					  gpgme_conf_comp_t conf);

void _gpgme_engine_set_io_cbs (engine_t engine,
			       gpgme_io_cbs_t io_cbs);
void _gpgme_engine_io_event (engine_t engine,
			     gpgme_event_io_t type, void *type_data);

gpgme_error_t _gpgme_engine_cancel (engine_t engine);

gpgme_error_t _gpgme_engine_cancel_op (engine_t engine);

gpgme_error_t _gpgme_engine_op_passwd (engine_t engine, gpgme_key_t key,
                                       unsigned int flags);


#endif /* ENGINE_H */