2004-04-22 Marcus Brinkmann <marcus@g10code.de>
[gpgme.git] / gpgme / ops.h
1 /* ops.h - Internal operation support.
2    Copyright (C) 2000 Werner Koch (dd9jn)
3    Copyright (C) 2001, 2002, 2003 g10 Code GmbH
4  
5    This file is part of GPGME.
6  
7    GPGME is free software; you can redistribute it and/or modify it
8    under the terms of the GNU General Public License as published by
9    the Free Software Foundation; either version 2 of the License, or
10    (at your option) any later version.
11  
12    GPGME is distributed in the hope that it will be useful, but
13    WITHOUT ANY WARRANTY; without even the implied warranty of
14    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15    General Public License for more details.
16  
17    You should have received a copy of the GNU General Public License
18    along with GPGME; if not, write to the Free Software Foundation,
19    Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
20
21 #ifndef OPS_H
22 #define OPS_H
23
24 #include "gpgme.h"
25 #include "context.h"
26
27 \f
28 /* From gpgme.c.  */
29 void _gpgme_release_result (gpgme_ctx_t ctx);
30
31 \f
32 /* From wait.c.  */
33 gpgme_error_t _gpgme_wait_one (gpgme_ctx_t ctx);
34 gpgme_error_t _gpgme_wait_on_condition (gpgme_ctx_t ctx, volatile int *cond);
35
36 \f
37 /* From data.c.  */
38 gpgme_error_t _gpgme_data_inbound_handler (void *opaque, int fd);
39 gpgme_error_t _gpgme_data_outbound_handler (void *opaque, int fd);
40
41 \f
42 /* From op-support.c.  */
43
44 /* Find or create the op data object of type TYPE.  */
45 gpgme_error_t _gpgme_op_data_lookup (gpgme_ctx_t ctx, ctx_op_data_id_t type,
46                                      void **hook, int size,
47                                      void (*cleanup) (void *));
48
49 /* Prepare a new operation on CTX.  */
50 gpgme_error_t _gpgme_op_reset (gpgme_ctx_t ctx, int synchronous);
51
52 /* Parse the INV_RECP status line in ARGS and return the result in
53    KEY.  */
54 gpgme_error_t _gpgme_parse_inv_recp (char *args, gpgme_invalid_key_t *key);
55
56 \f
57 /* From verify.c.  */
58 gpgme_error_t _gpgme_op_verify_init_result (gpgme_ctx_t ctx);
59 gpgme_error_t _gpgme_verify_status_handler (void *priv,
60                                             gpgme_status_code_t code,
61                                             char *args);
62
63 \f
64 /* From decrypt.c.  */
65 gpgme_error_t _gpgme_op_decrypt_init_result (gpgme_ctx_t ctx);
66 gpgme_error_t _gpgme_decrypt_status_handler (void *priv,
67                                              gpgme_status_code_t code,
68                                              char *args);
69
70 \f
71 /* From sign.c.  */
72
73 /* Create an initial op data object for signing.  Needs to be called
74    once before calling _gpgme_sign_status_handler.  */
75 gpgme_error_t _gpgme_op_sign_init_result (gpgme_ctx_t ctx);
76
77 /* Process a status line for signing operations.  */
78 gpgme_error_t _gpgme_sign_status_handler (void *priv,
79                                           gpgme_status_code_t code,
80                                           char *args);
81
82 \f
83 /* From encrypt.c.  */
84
85 /* Create an initial op data object for encrypt.  Needs to be called
86    once before calling _gpgme_encrypt_status_handler.  */
87 gpgme_error_t _gpgme_op_encrypt_init_result (gpgme_ctx_t ctx);
88
89 /* Process a status line for encryption operations.  */
90 gpgme_error_t _gpgme_encrypt_status_handler (void *priv,
91                                              gpgme_status_code_t code,
92                                              char *args);
93
94 \f
95 /* From passphrase.c.  */
96 gpgme_error_t _gpgme_passphrase_status_handler (void *priv,
97                                                 gpgme_status_code_t code,
98                                                 char *args);
99 gpgme_error_t _gpgme_passphrase_command_handler (void *opaque,
100                                                  gpgme_status_code_t code,
101                                                  const char *key, int fd);
102 gpgme_error_t _gpgme_passphrase_command_handler_internal (void *opaque,
103                                                  gpgme_status_code_t code,
104                                                  const char *key, int fd,
105                                                  int *processed);
106
107 \f
108 /* From progress.c.  */
109 gpgme_error_t _gpgme_progress_status_handler (void *priv,
110                                               gpgme_status_code_t code,
111                                               char *args);
112
113 \f
114 /* From key.c.  */
115 gpgme_error_t _gpgme_key_new (gpgme_key_t *r_key);
116 gpgme_error_t _gpgme_key_add_subkey (gpgme_key_t key,
117                                      gpgme_subkey_t *r_subkey);
118 gpgme_error_t _gpgme_key_append_name (gpgme_key_t key, char *src);
119 gpgme_key_sig_t _gpgme_key_add_sig (gpgme_key_t key, char *src);
120
121 \f
122 /* From keylist.c.  */
123 void _gpgme_op_keylist_event_cb (void *data, gpgme_event_io_t type,
124                                  void *type_data);
125
126 \f
127 /* From trust-item.c.  */
128
129 /* Create a new trust item.  */
130 gpgme_error_t _gpgme_trust_item_new (gpgme_trust_item_t *r_item);
131
132 \f
133 /* From trustlist.c.  */
134 void _gpgme_op_trustlist_event_cb (void *data, gpgme_event_io_t type,
135                                    void *type_data);
136
137 \f
138 /*-- version.c --*/
139 const char *_gpgme_compare_versions (const char *my_version,
140                                      const char *req_version);
141 char *_gpgme_get_program_version (const char *const path);
142
143 #endif /* OPS_H */