/[winpt]/trunk/MyGPGME/gpgme.h
ViewVC logotype

Contents of /trunk/MyGPGME/gpgme.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5 - (show annotations)
Mon Mar 7 13:21:36 2005 UTC (19 years, 11 months ago) by twoaday
File MIME type: text/plain
File size: 30932 byte(s)
2005-03-03  Timo Schulz  <twoaday@g10code.com>
                                                                                
        * wptCardDlg.cpp (card_changepin_dlg_proc): Add item to re-type the
        new PIN. Suggested by Achim.
        Support to show the unmasked PIN.
        Modified TAB-order.
        * wptPINDlg.cpp (pin_cb_dlg_proc): Show unmasked PIN.
 
        * Fixed wrong GPG --command-fd strings. Thanks to Achim.
 
2005-03-04  Timo Schulz  <twoaday@g10code.com>
 
        * GPG asks twice for the new PIN. Thanks to Achim.
        * wptCardDlg.cpp (card_changepin_dlg_proc): Reset the 'safety' pin also.        Only check the passphrase if the backup flag is enabled. Again thanks to        Achim.
 
2005-03-06  Timo Schulz  <twoaday@freakmail.de>
 
        * wptKeySignDlg.cpp (do_fill_seckeylist): Skip secret keys without
        a public key. Noted by Kurt Fitzner.
 


1 /* gpgme.h - My GnuPG Made Easy (MyGPGME)
2 * Copyright (C) 2000 Werner Koch (dd9jn)
3 * Copyright (C) 2001-2005 Timo Schulz
4 *
5 * This file is part of MyGPGME.
6 *
7 * MyGPGME is free software; you can redistribute it and/or modify
8 * it 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 * MyGPGME is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
20 */
21
22 #ifndef GPGME_H
23 #define GPGME_H
24
25 #include <stdio.h> /* for FILE * */
26 #include <time.h> /* for time_t */
27
28 #ifdef __cplusplus
29 extern "C" {
30 #if 0 /* just to make Emacs auto-indent happy */
31 }
32 #endif
33 #endif
34
35
36 /*
37 * The version of this header should match the one of the library
38 * It should not be used by a program because gpgme_check_version(NULL)
39 * does return the same version. The purpose of this macro is to
40 * let autoconf (using the AM_PATH_GPGME macro) check that this
41 * header matches the installed library.
42 * Warning: Do not edit the next line. configure will do that for you! */
43 #define GPGME_VERSION "20050306ts"
44
45 struct gpgme_context_s;
46 typedef struct gpgme_context_s *gpgme_ctx_t;
47
48 struct gpgme_data_s;
49 typedef struct gpgme_data_s *gpgme_data_t;
50
51 struct gpgme_recipients_s;
52 typedef struct gpgme_recipients_s *gpgme_recipients_t;
53
54 struct gpgme_key_s;
55 typedef struct gpgme_key_s *gpgme_key_t;
56
57 struct gpgme_keycache_s;
58 typedef struct gpgme_keycache_s *gpgme_keycache_t;
59
60 struct gpgme_signature_s;
61 typedef struct gpgme_signature_s *gpgme_sig_t;
62
63 struct gpgme_editkey_s;
64 typedef struct gpgme_editkey_s *gpgme_editkey_t;
65
66 struct gpgme_editcard_s;
67 typedef struct gpgme_editcard_s *gpgme_editcard_t;
68
69 struct gpgme_card_s;
70 typedef struct gpgme_card_s *gpgme_card_t;
71
72 struct gpgme_user_id_info_s;
73 typedef struct gpgme_user_id_info_s *gpgme_uidinfo_t;
74
75 struct gpgme_rev_cert_s;
76 typedef struct gpgme_rev_cert_s *gpgme_revcert_t;
77
78
79 typedef enum {
80 GPGME_EOF = -1,
81 GPGME_No_Error = 0,
82 GPGME_General_Error = 1,
83 GPGME_Out_Of_Core = 2,
84 GPGME_Invalid_Value = 3,
85 GPGME_Busy = 4,
86 GPGME_No_Request = 5,
87 GPGME_Exec_Error = 6,
88 GPGME_Too_Many_Procs = 7,
89 GPGME_Pipe_Error = 8,
90 GPGME_No_Recipients = 9,
91 GPGME_No_Data = 10,
92 GPGME_Conflict = 11,
93 GPGME_Not_Implemented = 12,
94 GPGME_Read_Error = 13,
95 GPGME_Write_Error = 14,
96 GPGME_Invalid_Type = 15,
97 GPGME_Invalid_Mode = 16,
98 GPGME_File_Error = 17, /* errno is set in this case */
99 GPGME_Decryption_Failed = 18,
100 GPGME_Signing_Failed = 19,
101 GPGME_Encryption_Failed = 29,
102 GPGME_No_Passphrase = 20,
103 GPGME_No_Seckey = 21,
104 GPGME_No_Pubkey = 27,
105 GPGME_Canceled = 22,
106 GPGME_Invalid_Key = 23,
107 GPGME_Invalid_Engine = 24,
108 GPGME_Bad_Signature = 25,
109 GPGME_Bad_Passphrase = 26,
110 GPGME_Inv_Recipients = 28,
111 GPGME_Interal_GPG_Problem = 30,
112 GPGME_Clip_Open = 31,
113 GPGME_Clip_Empty = 32,
114 GPGME_Clip_Get = 33,
115 GPGME_Cipher_IDEA = 34,
116 GPGME_Conf_InvOption = 35,
117
118 /* Recipient Errors */
119 GPGME_RecpError_NoReason = 100,
120 GPGME_RecpError_NotFound = 101,
121 GPGME_RecpError_Ambigious = 102,
122 GPGME_RecpError_WrongKeyUsage = 103,
123 GPGME_RecpError_Revoked = 104,
124 GPGME_RecpError_Expired = 105,
125 GPGME_RecpError_NotSecret = 109,
126 GPGME_RecpError_Untrusted = 110,
127 } gpgme_error_t;
128
129 typedef enum {
130 GPGME_DATA_TYPE_NONE = 0,
131 GPGME_DATA_TYPE_MEM = 1,
132 GPGME_DATA_TYPE_FD = 2,
133 GPGME_DATA_TYPE_FILE = 3,
134 GPGME_DATA_TYPE_CB = 4
135 } gpgme_data_type_t;
136
137 typedef enum {
138 GPGME_SIG_STAT_NONE = 0,
139 GPGME_SIG_STAT_GOOD = 1,
140 GPGME_SIG_STAT_BAD = 2,
141 GPGME_SIG_STAT_NOKEY = 3,
142 GPGME_SIG_STAT_NOSIG = 4,
143 GPGME_SIG_STAT_ERROR = 5,
144 GPGME_SIG_STAT_DIFF = 6,
145 GPGME_SIG_STAT_E_GOOD= 7,
146 GPGME_SIG_STAT_R_GOOD= 8,
147 } gpgme_sigstat_t;
148
149 typedef enum {
150 GPGME_SIGF_NONE = 0,
151 GPGME_SIGF_LOCAL = 1,
152 GPGME_SIGF_NREV = 2
153 } gpgme_sigflat_t;
154
155 typedef enum {
156 GPGME_SIG_MODE_NORMAL = 0,
157 GPGME_SIG_MODE_DETACH = 1,
158 GPGME_SIG_MODE_CLEAR = 2
159 } gpgme_sigmode_t;
160
161 typedef enum {
162 GPGME_ATTR_KEYID = 1,
163 GPGME_ATTR_FPR = 2,
164 GPGME_ATTR_ALGO = 3,
165 GPGME_ATTR_ALGO_SHORT = 4,
166 GPGME_ATTR_LEN = 5,
167 GPGME_ATTR_CREATED = 6,
168 GPGME_ATTR_EXPIRE = 7,
169 GPGME_ATTR_EXPIRES = 8,
170 GPGME_ATTR_OTRUST = 9,
171 GPGME_ATTR_USERID = 10,
172 GPGME_ATTR_NAME = 11,
173 GPGME_ATTR_EMAIL = 12,
174 GPGME_ATTR_COMMENT = 13,
175 GPGME_ATTR_VALIDITY = 14,
176 GPGME_ATTR_LEVEL = 15,
177 GPGME_ATTR_TYPE = 16,
178 GPGME_ATTR_IS_SECRET = 17,
179 GPGME_ATTR_IS_ULTIMATE = 18,
180 GPGME_ATTR_IS_PROTECTED = 19,
181 GPGME_ATTR_MDC = 20,
182 GPGME_ATTR_NOTATION = 21,
183 GPGME_ATTR_POLICY_URL = 22,
184 GPGME_ATTR_REVKEY_ALGO = 23,
185 GPGME_ATTR_REVKEY_FPR = 24,
186 GPGME_ATTR_OPAQUE = 25,
187 GPGME_ATTR_MD = 26,
188 GPGME_ATTR_PHOTO = 27,
189 GPGME_ATTR_CAN_ENCRYPT = 28,
190 GPGME_ATTR_CAN_SIGN = 29,
191 GPGME_ATTR_CAN_CERTIFY = 30,
192 GPGME_ATTR_CAN_AUTH = 31,
193 GPGME_ATTR_DIVERT_CARD = 32,
194 GPGME_ATTR_KEYSERVER = 33,
195
196 GPGME_ATTR_KEYDAT_NP = 50,
197 GPGME_ATTR_KEYDAT_BITS = 51,
198 GPGME_ATTR_KEYDAT_VAL = 52,
199
200 GPGME_ATTR_KEY_REVOKED = 100,
201 GPGME_ATTR_KEY_INVALID = 101,
202 GPGME_ATTR_KEY_EXPIRED = 102,
203 GPGME_ATTR_KEY_DISABLED = 103,
204 GPGME_ATTR_KEY_CAPS = 104,
205 GPGME_ATTR_KEY_SYMPREFS = 105,
206 GPGME_ATTR_KEY_VALIDITY = 106,
207 GPGME_ATTR_KEY_CARDNO = 107,
208 GPGME_ATTR_KEY_USABLE = 108,
209
210 GPGME_ATTR_UID_REVOKED = 150,
211 GPGME_ATTR_UID_INVALID = 151,
212 GPGME_ATTR_UID_PRIMARY = 152,
213 GPGME_ATTR_UID_PREFS = 153,
214 GPGME_ATTR_UID_CREATED = 154,
215 GPGME_ATTR_UID_HASH = 155,
216
217 GPGME_ATTR_SIG_ALGO = 200,
218 GPGME_ATTR_SIG_KEYID = 201,
219 GPGME_ATTR_SIG_ISSUER = 202,
220 GPGME_ATTR_SIG_CREATED = 203,
221 GPGME_ATTR_SIG_EXPIRES = 204,
222 GPGME_ATTR_SIG_STAT = 205,
223 GPGME_ATTR_SIG_USERID = 206,
224 GPGME_ATTR_SIG_CLASS = 206,
225 GPGME_ATTR_SIG_FLAGS = 207,
226
227 GPGME_ATTR_CARD_AID = 250,
228 GPGME_ATTR_CARD_VER = 251,
229 GPGME_ATTR_CARD_VENDOR = 252,
230 GPGME_ATTR_CARD_SERIAL = 253,
231 GPGME_ATTR_CARD_NAME = 254,
232 GPGME_ATTR_CARD_NAME2 = 255,
233 GPGME_ATTR_CARD_LANG = 256,
234 GPGME_ATTR_CARD_SEX = 257,
235 GPGME_ATTR_CARD_URL = 258,
236 GPGME_ATTR_CARD_LOGIN = 259,
237 GPGME_ATTR_CARD_MAXPINLEN=260,
238 GPGME_ATTR_CARD_SIGCOUNT= 261,
239 GPGME_ATTR_CARD_FPR = 262
240 } gpgme_attr_t;
241
242 typedef enum {
243 GPGME_EDITKEY_SIGN = 1,
244 GPGME_EDITKEY_LSIGN = 2,
245 GPGME_EDITKEY_NRSIGN = 19,
246 GPGME_EDITKEY_NRLSIGN = 22,
247 GPGME_EDITKEY_TSIGN = 20,
248 GPGME_EDITKEY_TRUST = 3,
249 GPGME_EDITKEY_ADDUID = 4,
250 GPGME_EDITKEY_DELUID = 5,
251 GPGME_EDITKEY_DELKEY = 6,
252 GPGME_EDITKEY_ADDKEY = 7,
253 GPGME_EDITKEY_PASSWD = 8,
254 GPGME_EDITKEY_PRIMARY = 9,
255 GPGME_EDITKEY_EXPIRE = 10,
256 GPGME_EDITKEY_REVSIG = 11,
257 GPGME_EDITKEY_REVKEY = 12,
258 GPGME_EDITKEY_REVOKE = 13, /* revoke the whole key */
259 GPGME_EDITKEY_ADDREV = 14,
260 GPGME_EDITKEY_ADDPHOTO= 15,
261 GPGME_EDITKEY_ENABLE = 16,
262 GPGME_EDITKEY_DISABLE = 17,
263 GPGME_EDITKEY_SETPREF = 18,
264 GPGME_EDITKEY_DELSIG = 21,
265 GPGME_EDITKEY_KEYSERV = 23
266 } gpgme_edit_key_t;
267
268
269 typedef enum {
270 GPGME_EDITCARD_NAME = 1,
271 GPGME_EDITCARD_NAME2 = 2,
272 GPGME_EDITCARD_KEYURL = 3,
273 GPGME_EDITCARD_LOGIN = 4,
274 GPGME_EDITCARD_SEX = 5,
275 GPGME_EDITCARD_LANG = 6,
276 GPGME_EDITCARD_APIN = 7,
277 GPGME_EDITCARD_UPIN = 8,
278 GPGME_EDITCARD_GENKEY = 9,
279 GPGME_EDITCARD_FETCH = 10,
280 GPGME_EDITCARD_CAFPR = 11,
281 /* change pin */
282 GPGME_EDITCARD_CHAPIN = 20,
283 GPGME_EDITCARD_CHUPIN = 21,
284 GPGME_EDITCARD_UNBPIN = 22 /*unblock PIN*/
285 } gpgme_edit_card_t;
286
287 typedef enum {
288 GPGME_CARDFLAG_NONE = 0,
289 GPGME_CARDFLAG_REPLACE = 1,
290 GPGME_CARDFLAG_BAKENC = 2
291 } gpgme_cardflag_t;
292
293 typedef enum {
294 GPGME_VALIDITY_UNKNOWN = 0,
295 GPGME_VALIDITY_UNDEFINED = 1,
296 GPGME_VALIDITY_NEVER = 2,
297 GPGME_VALIDITY_MARGINAL = 3,
298 GPGME_VALIDITY_FULL = 4,
299 GPGME_VALIDITY_ULTIMATE = 5,
300 GPGME_VALIDITY_REVOKED = 6,
301 GPGME_VALIDITY_EXPIRED = 7
302 } gpgme_validity_t;
303
304 typedef enum {
305 GPGME_TRUST_UNKNOWN = 0,
306 GPGME_TRUST_DONTKNOW = 1,
307 GPGME_TRUST_NEVER = 2,
308 GPGME_TRUST_MARGINAL = 3,
309 GPGME_TRUST_FULLY = 4,
310 GPGME_TRUST_ULTIMATE = 5,
311 GPGME_TRUST_UNDEFINED = 6,
312 GPGME_TRUST_EXPIRED = 7
313 } GpgmeOwnertrust;
314
315 typedef enum {
316 GPGME_CTRL_ARMOR = 1,
317 GPGME_CTRL_TEXTMODE = 2,
318 GPGME_CTRL_THROWKEYID = 4,
319 GPGME_CTRL_LISTMODE = 8,
320 GPGME_CTRL_FORCETRUST = 16,
321 GPGME_CTRL_SIGMODE = 32,
322 GPGME_CTRL_CIPHER = 64,
323 GPGME_CTRL_PASSPWD = 128,
324 GPGME_CTRL_TMPFILES = 256,
325 GPGME_CTRL_WITH_SECRET_KEY = 512,
326 GPGME_CTRL_FORCEOPT = 1024,
327 GPGME_CTRL_FILE = 2048,
328 GPGME_CTRL_FPR = 4096,
329 GPGME_CTRL_S2K = 8192,
330 GPGME_CTRL_S2K_MODE = 16384,
331 GPGME_CTRL_S2K_HASH = 32678,
332 GPGME_CTRL_INTERACTIVE = 65536,
333 GPGME_CTRL_PIPEMODE = 131072,
334 GPGME_CTRL_LOGGING = 262144,
335 GPGME_CTRL_NO_COMPR = 524288,
336 GPGME_CTRL_CB_VAL = 1048576
337 } gpgme_control_t;
338
339 typedef enum {
340 GPGME_LISTMODE_NORMAL = 0,
341 GPGME_LISTMODE_NOTRUST = 1,
342 GPGME_LISTMODE_KEYDATA = 2,
343 GPGME_LISTMODE_FAST = 4
344 } gpgme_listmode_t;
345
346 typedef enum {
347 GPGME_LISTOPT_NONE = 0,
348 GPGME_LISTOPT_SIGSUBPKT = 1
349 } gpgme_listopt_t;
350
351 typedef enum {
352 GPGME_KEYGEN_NONE = 0,
353 GPGME_KEYGEN_DSA_ELG = 1,
354 GPGME_KEYGEN_DSA_RSA = 2,
355 GPGME_KEYGEN_DSA_SIG = 3,
356 GPGME_KEYGEN_RSA_SIG = 4,
357 GPGME_KEYGEN_RSA = 5,
358 GPGME_KEYGEN_RSA_RSA = 6 /*PGP*/
359 } gpgme_keygen_t;
360
361 typedef enum {
362 GPGME_IMPSTAT_NPKEYS = 0,
363 GPGME_IMPSTAT_NOSELFSIG = 1,
364 GPGME_IMPSTAT_IPKEYS = 2,
365 GPGME_IMPSTAT_NUIDS = 5,
366 GPGME_IMPSTAT_NSUBKEYS = 6,
367 GPGME_IMPSTAT_NSIGS = 7,
368 GPGME_IMPSTAT_NREV = 8,
369 GPGME_IMPSTAT_NSKEYS = 9,
370 GPGME_IMPSTAT_ISKEYS = 10
371 } gpgme_import_status_t;
372
373
374 typedef enum {
375 GPGME_REVOKE_INSECURE = 1,
376 GPGME_REVOKE_SUPERSEDED = 2,
377 GPGME_REVOKE_NOUSED = 3
378 } gpgme_revoke_reason_t;
379
380
381 typedef enum {
382 GPGME_OPFLAG_NOSECKEY = 1,
383 GPGME_OPFLAG_BADMDC = 2,
384 GPGME_OPFLAG_BADARMOR = 4
385 } gpgme_op_flags_t;
386
387
388 typedef enum {
389 GPGME_CLIP_MESSAGE = 1,
390 GPGME_CLIP_CLEARSIG = 2,
391 GPGME_CLIP_SIG = 4,
392 GPGME_CLIP_PUBKEY = 8,
393 GPGME_CLIP_SECKEY = 16,
394 GPGME_CLIP_DASH_ESCAPED = 32
395 } gpgme_cliptype_t;
396
397 typedef enum {
398 GPGME_CIPHER_3DES = 1,
399 GPGME_CIPHER_CAST5 = 2,
400 GPGME_CIPHER_BLOWFISH = 3,
401 GPGME_CIPHER_AES128 = 4,
402 GPGME_CIPHER_AES192 = 5,
403 GPGME_CIPHER_AES256 = 6,
404 GPGME_CIPHER_TWOFISH = 7
405 } gpgme_cipher_t;
406
407 typedef enum {
408 GPGME_S2K_SIMPLE = 0,
409 GPGME_S2K_SALTED = 1,
410 GPGME_S2K_ITERSALTED = 3
411 } gpgme_s2kmode_t;
412
413
414 typedef enum {
415 GPGME_PK_RSA = 1,
416 GPGME_PK_RSA_E = 2,
417 GPGME_PK_RSA_S = 3,
418 GPGME_PK_ELG_E = 16,
419 GPGME_PK_DSA = 17,
420 GPGME_PK_ELG_ES = 20
421 } gpgme_pk_cipher_t;
422
423 typedef enum {
424 GPGME_MD_SHA1 = 2,
425 GPGME_MD_RMD160 = 3
426 } gpgme_md_t;
427
428
429 #define GPGME_KEY_CANSIGN 0x01
430 #define GPGME_KEY_CANENCR 0x02
431
432 typedef const char *(*gpgme_passphrase_cb_t)( void*, const char *desc,
433 void * r_hd );
434
435 typedef const char *(*gpgme_interactive_cb_t)( void * opaque,
436 int code, const char * key,
437 const char * val );
438 typedef void (*gpgme_progress_cb_t)( void * opaque,
439 const char * what,
440 int type, unsigned current, unsigned total );
441
442 typedef void (*gpgme_wipe_t)( const char *path, int simple );
443
444
445 /* Initialize the library */
446 gpgme_error_t gpgme_lib_init (void);
447 void gpgme_lib_cleanup (void);
448
449 /* Context management */
450 gpgme_error_t gpgme_new( gpgme_ctx_t * r_ctx );
451 void gpgme_release( gpgme_ctx_t ctx );
452 void gpgme_cancel( gpgme_ctx_t ctx );
453 gpgme_ctx_t gpgme_wait( gpgme_ctx_t c, int hang );
454
455 gpgme_error_t gpgme_get_enc_to_ctx( gpgme_ctx_t c, gpgme_recipients_t *r_ctx );
456 void gpgme_clear_enc_to_ctx (gpgme_ctx_t ctx);
457 char * gpgme_get_notation (gpgme_ctx_t ctx);
458 char * gpgme_get_logging (gpgme_ctx_t ctx);
459 void gpgme_set_comment (gpgme_ctx_t c, const char * text);
460 void * gpgme_control( gpgme_ctx_t c, int cmd, int val );
461 void gpgme_set_passphrase_cb( gpgme_ctx_t c,
462 gpgme_passphrase_cb_t cb, void *cb_value );
463 void gpgme_set_interactive_cb( gpgme_ctx_t ctx,
464 gpgme_interactive_cb_t cb, void * cb_value );
465 void gpgme_set_progress_cb( gpgme_ctx_t c,
466 gpgme_progress_cb_t cb, void * cb_value );
467 void gpgme_set_wipe_fnc( gpgme_ctx_t c, gpgme_wipe_t fnc );
468 void gpgme_set_local_user( gpgme_ctx_t ctx, const char * name );
469 int gpgme_get_process_rc( gpgme_ctx_t ctx );
470
471 void gpgme_signers_clear( gpgme_ctx_t ctx );
472 gpgme_error_t gpgme_signers_add( gpgme_ctx_t ctx, const gpgme_key_t key );
473 gpgme_key_t gpgme_signers_enum( const gpgme_ctx_t c, int seq );
474 gpgme_error_t gpgme_get_sig_key( gpgme_ctx_t ctx, int idx, gpgme_key_t *r_key );
475 gpgme_error_t gpgme_get_sig_ctx( gpgme_ctx_t ctx, int idx, size_t *r_ncount,
476 gpgme_sig_t *r_sig );
477
478 /* Functions to handle recipients */
479 gpgme_error_t gpgme_recipients_new( gpgme_recipients_t *r_rset );
480 void gpgme_recipients_release( gpgme_recipients_t rset );
481 gpgme_error_t gpgme_recipients_add_name( gpgme_recipients_t rset,
482 const char *name );
483 gpgme_error_t gpgme_recipients_add_name_with_validity( gpgme_recipients_t rset,
484 const char *name,
485 gpgme_validity_t val );
486 unsigned int gpgme_recipients_count (const gpgme_recipients_t rset);
487 const char* gpgme_recipients_get_name (const gpgme_recipients_t rset, int pos);
488 gpgme_error_t gpgme_recipients_enum_open( const gpgme_recipients_t rset,
489 void ** ctx );
490 const char * gpgme_recipients_enum_read( const gpgme_recipients_t rset,
491 void ** ctx );
492 gpgme_error_t gpgme_recipients_enum_close( const gpgme_recipients_t rset,
493 void ** ctx );
494
495 int gpgme_recperr_count_items( gpgme_ctx_t ctx );
496 const char * gpgme_recperr_get( gpgme_ctx_t ctx, int idx,
497 gpgme_error_t * r_code );
498
499 /* Functions to handle data sources */
500 gpgme_error_t gpgme_data_new( gpgme_data_t *r_dh );
501 gpgme_error_t gpgme_data_new_from_mem( gpgme_data_t *r_dh,
502 const char *buffer, size_t size,
503 int copy );
504 gpgme_error_t gpgme_data_new_with_read_cb( gpgme_data_t *r_dh,
505 int (*read_cb)(void*,char *,size_t,size_t*),
506 void *read_cb_value );
507
508 gpgme_error_t gpgme_data_new_from_file (gpgme_data_t *r_dh,
509 const char *fname);
510 gpgme_error_t gpgme_data_new_from_filepart( gpgme_data_t * r_dh,
511 const char * fname, FILE * fp,
512 long offset,
513 unsigned long length );
514 void gpgme_data_release( gpgme_data_t dh );
515 char * gpgme_data_release_and_get_mem( gpgme_data_t dh,
516 size_t * r_len );
517 gpgme_data_type_t gpgme_data_get_type( gpgme_data_t dh );
518 gpgme_error_t gpgme_data_rewind( gpgme_data_t dh );
519 gpgme_error_t gpgme_data_read( gpgme_data_t dh,
520 char *buffer, size_t length, size_t *nread );
521 gpgme_error_t gpgme_data_write( gpgme_data_t dh,
522 const char *buffer, size_t length );
523 #define gpgme_data_putc( dh, c ) do { \
524 unsigned char buf[2]; \
525 buf[0] = c & 0xFF; buf[1] = 0x00; \
526 gpgme_data_write( dh, buf, 1 ); \
527 } while( 0 )
528
529 /* Key and trust functions */
530 void gpgme_key_ref( gpgme_key_t key );
531 void gpgme_key_unref( gpgme_key_t key );
532 void gpgme_key_release( gpgme_key_t key );
533 const char * gpgme_key_get_string_attr( gpgme_key_t key, gpgme_attr_t what,
534 void **reserved, int idx );
535 unsigned long gpgme_key_get_ulong_attr( gpgme_key_t key, gpgme_attr_t what,
536 void **reserved, int idx );
537
538 /* Key management functions */
539 gpgme_error_t gpgme_op_keylist_start( gpgme_ctx_t ctx,
540 const char *pattern, int secret_only );
541 gpgme_error_t gpgme_op_keylist_next( gpgme_ctx_t ctx, gpgme_key_t * r_key );
542
543 /* Convenience functions for normal usage */
544 gpgme_error_t gpgme_op_encrypt ( gpgme_ctx_t c, gpgme_recipients_t recp,
545 gpgme_data_t in, gpgme_data_t out );
546 gpgme_error_t gpgme_op_file_encrypt( gpgme_ctx_t ctx, gpgme_recipients_t rset,
547 const char * input, const char * output );
548 gpgme_error_t gpgme_op_files_encrypt( gpgme_ctx_t ctx, gpgme_recipients_t rset,
549 const char ** files, size_t nfiles );
550 gpgme_error_t gpgme_op_clip_encrypt( gpgme_recipients_t rset, int opts,
551 gpgme_ctx_t * r_ctx );
552
553 gpgme_error_t gpgme_op_list_keys( gpgme_data_t ciph, const char * file,
554 gpgme_recipients_t * r_rset );
555 gpgme_error_t gpgme_op_decrypt( gpgme_ctx_t ctx, gpgme_data_t ciph,
556 gpgme_data_t plain );
557 gpgme_error_t gpgme_op_file_decrypt( gpgme_ctx_t ctx, const char * ciph,
558 const char * plain );
559 gpgme_error_t gpgme_op_files_decrypt( gpgme_ctx_t ctx, const char ** files,
560 size_t nfiles );
561 gpgme_error_t gpgme_op_clip_decrypt( gpgme_ctx_t ctx );
562
563 gpgme_error_t gpgme_op_sign ( gpgme_ctx_t c, gpgme_data_t in, gpgme_data_t out,
564 gpgme_sigmode_t mode );
565 gpgme_error_t gpgme_op_clip_sign( gpgme_ctx_t ctx, gpgme_sigmode_t mode,
566 const char * keyid, int wraplen );
567 gpgme_error_t gpgme_op_file_sign( gpgme_ctx_t ctx, gpgme_sigmode_t mode,
568 const char *input, const char *output );
569 gpgme_error_t gpgme_op_files_sign( gpgme_ctx_t ctx, gpgme_sigmode_t mode,
570 const char ** files, size_t nfiles );
571
572 gpgme_error_t gpgme_op_verify ( gpgme_ctx_t c, gpgme_data_t sig,
573 gpgme_data_t text );
574 gpgme_error_t gpgme_op_file_verify( gpgme_ctx_t ctx, gpgme_sigmode_t sigmode,
575 gpgme_sig_t * r_sigctx,
576 const char * sigfile, const char * datfile );
577 gpgme_error_t gpgme_op_files_verify( gpgme_ctx_t ctx, const char ** files,
578 size_t nfiles, gpgme_sig_t * ret_sig );
579 gpgme_error_t gpgme_op_clip_verify( gpgme_keycache_t cache,
580 gpgme_sig_t * r_sigctx );
581 gpgme_error_t gpgme_op_clip_verify_detached( gpgme_keycache_t cache,
582 gpgme_sig_t * r_sigctx,
583 const char * data, size_t len );
584
585 gpgme_error_t gpgme_op_import( gpgme_ctx_t ctx, gpgme_recipients_t selkeys,
586 gpgme_data_t keydata );
587 gpgme_error_t gpgme_op_clip_import( int ctrl, gpgme_recipients_t selkeys,
588 int * import_res );
589 gpgme_error_t gpgme_op_file_import( gpgme_ctx_t ctx, gpgme_recipients_t selkeys,
590 const char *input );
591 gpgme_error_t gpgme_op_import_list( gpgme_ctx_t ctx, gpgme_data_t in,
592 gpgme_data_t out );
593 gpgme_error_t gpgme_op_import_list_next( gpgme_data_t out,
594 char **pending_line,
595 gpgme_key_t *r_key );
596
597 gpgme_error_t gpgme_op_export ( gpgme_ctx_t c, gpgme_recipients_t recp,
598 gpgme_data_t keydata );
599 gpgme_error_t gpgme_op_file_export( gpgme_ctx_t ctx, gpgme_recipients_t recp,
600 const char *output );
601 gpgme_error_t gpgme_op_clip_export( gpgme_recipients_t rset );
602
603 gpgme_error_t gpgme_op_genkey ( gpgme_ctx_t c, const char *parms,
604 gpgme_data_t pubkey, gpgme_data_t seckey );
605 gpgme_error_t gpgme_op_delete ( gpgme_ctx_t c, const gpgme_key_t key,
606 int allow_secret );
607
608 gpgme_error_t gpgme_op_symenc ( gpgme_ctx_t c, gpgme_data_t in,
609 gpgme_data_t out );
610 gpgme_error_t gpgme_op_clip_symenc( gpgme_ctx_t ctx );
611
612 gpgme_error_t gpgme_op_sign_encrypt( gpgme_ctx_t ctx, gpgme_recipients_t rset,
613 gpgme_data_t plain, gpgme_data_t ciph );
614 gpgme_error_t gpgme_op_clip_sign_encrypt( gpgme_ctx_t c, gpgme_recipients_t rset,
615 const char * keyid, int force_trust );
616 gpgme_error_t gpgme_op_file_sign_encrypt( gpgme_ctx_t ctx,
617 gpgme_recipients_t rset,
618 const char * input,
619 const char * output );
620 gpgme_error_t gpgme_op_files_sign_encrypt( gpgme_ctx_t ctx,
621 gpgme_recipients_t recp,
622 const char ** files, size_t nfiles );
623
624 /* miscellaneous functions */
625 const char *gpgme_strerror( gpgme_error_t err );
626
627 /* Extensions */
628 void gpgme_set_debug_mode( int val );
629 void gpgme_set_edit_ctx( gpgme_ctx_t c, void * edit_ctx, int edit_id );
630 void gpgme_set_cache_ctx( gpgme_ctx_t c, void * cache_ctx );
631
632 /* Signature API */
633 gpgme_error_t gpgme_sig_new( gpgme_sig_t * r_sig );
634 void gpgme_sig_release( gpgme_sig_t sig );
635 unsigned long gpgme_sig_get_ulong_attr( gpgme_sig_t sig, int idx, int what );
636 const char* gpgme_sig_get_string_attr( gpgme_sig_t sig, int what );
637 void gpgme_sig_set_key_ctx( gpgme_sig_t sig, gpgme_keycache_t cache );
638
639 /* Passphrase operations */
640 void gpgme_set_passphrase( gpgme_ctx_t c, const char * passphrase );
641
642 /* Data operations */
643 gpgme_error_t gpgme_data_new_from_clipboard (gpgme_data_t * r_dh);
644 void gpgme_data_release_and_set_clipboard (gpgme_data_t dh);
645 gpgme_error_t gpgme_data_change_version( gpgme_data_t *r_dh );
646 size_t gpgme_data_readline( gpgme_data_t dh, char *line, size_t nbytes );
647 int gpgme_data_wrap_lines( gpgme_data_t *r_dh, size_t wraplen );
648 gpgme_error_t gpgme_data_release_and_set_file( gpgme_data_t dh, const char *fname );
649 char* gpgme_data_release_and_return_string( gpgme_data_t dh );
650 char* gpgme_data_get_as_string (gpgme_data_t dh);
651 gpgme_error_t gpgme_data_extract_plaintext (gpgme_data_t sig, gpgme_data_t *r_plain);
652 gpgme_error_t gpgme_data_mail_quote (gpgme_data_t *r_dh);
653
654 /* Key edit operations */
655 gpgme_error_t gpgme_op_delete_key( const char *keyid, int allow_secret );
656 gpgme_error_t gpgme_op_delete_keys( gpgme_recipients_t rset, int allow_secret );
657
658 /* Key caching */
659 gpgme_error_t gpgme_keycache_new (gpgme_keycache_t * r_ctx);
660 void gpgme_keycache_release (gpgme_keycache_t ctx);
661 void gpgme_keycache_set_cb (gpgme_keycache_t ctx,
662 void (*cb)(void *, const char *, int, unsigned, unsigned),
663 void * cb_value1, int cb_value2);
664 int gpgme_keycache_add_key (gpgme_keycache_t ctx, gpgme_key_t key);
665 gpgme_error_t gpgme_keycache_find_key (gpgme_keycache_t ctx, const char * pattern,
666 int flags, gpgme_key_t * r_key);
667 gpgme_error_t gpgme_keycache_delete_key (gpgme_keycache_t ctx,
668 const char * pattern);
669 gpgme_error_t gpgme_keycache_init (gpgme_keycache_t ctx, const char * pattern,
670 int secret);
671 gpgme_error_t gpgme_keycache_next_key (gpgme_keycache_t ctx, int flags,
672 gpgme_key_t * r_key);
673 void gpgme_keycache_rewind( gpgme_keycache_t ctx );
674 int gpgme_keycache_count( gpgme_keycache_t ctx );
675 gpgme_error_t gpgme_keycache_prepare( gpgme_keycache_t ctx,
676 const char *pubring, const char * secring );
677 gpgme_error_t gpgme_keycache_sync (gpgme_keycache_t pub, gpgme_keycache_t sec);
678 int gpgme_getkey_bykeyid( void *fd_handle, const char * keyid, gpgme_key_t *r_key );
679
680
681 /* Ownertrust */
682 gpgme_error_t gpgme_op_key_trust_import( gpgme_ctx_t c, gpgme_data_t in );
683 gpgme_error_t gpgme_op_key_trust_export( gpgme_ctx_t c, gpgme_data_t out );
684 gpgme_error_t gpgme_op_ownertrust_export_file( const char *output );
685 gpgme_error_t gpgme_op_ownertrust_import_file( const char *input );
686
687 gpgme_error_t gpgme_op_rebuild_cache( void );
688
689 /* Import parser */
690
691 void gpgme_implist_create_revcert( gpgme_key_t *r_key, gpgme_revcert_t cert, gpgme_key_t pubk );
692
693
694 /* Key generation */
695 char * gpgme_genkey_params( int keytype, int bits,
696 const char *user, const char *comment,const char *email,
697 const char *expdate, const char *passphrase );
698 gpgme_error_t gpgme_op_genkey_auto( const char *params, gpgme_progress_cb_t prog_cb,
699 char **fpr );
700
701 /* Key attributes */
702 const char * gpgme_key_expand_attr( int what, unsigned long attr );
703
704 /* Key edit */
705 gpgme_error_t gpgme_uid_info_new( gpgme_uidinfo_t * r_inf );
706 void gpgme_uid_info_release( gpgme_uidinfo_t inf );
707 gpgme_error_t gpgme_op_editkey_get_info( gpgme_ctx_t ctx, const char * keyid,
708 gpgme_uidinfo_t * r_inf );
709 unsigned long gpgme_editkey_get_ulong_attr( gpgme_uidinfo_t inf, int what, int idx );
710 const char * gpgme_editkey_get_string_attr( gpgme_uidinfo_t inf, int what, int idx );
711 int gpgme_editkey_count_items( gpgme_uidinfo_t inf );
712 gpgme_error_t gpgme_op_editkey( gpgme_ctx_t ctx, const char *keyid );
713
714 /* Card edit */
715 gpgme_error_t gpgme_editcard_new( gpgme_editcard_t * r_ctx );
716 void gpgme_editcard_release( gpgme_editcard_t ctx );
717 gpgme_error_t gpgme_editcard_control( gpgme_editcard_t ctx, int cmd,
718 const void * val );
719 gpgme_error_t gpgme_editcard_set_passwd (gpgme_editcard_t ctx, const char * passwd);
720 gpgme_error_t gpgme_editcard_set_keygen_params( gpgme_editcard_t ctx, int flags,
721 const char * name, const char * email,
722 const char * comment, const char * expdate );
723 void gpgme_editcard_set_callback( gpgme_editcard_t ctx,
724 const char *(*cb)( int code, void * opaque ),
725 void * cb_value );
726
727 gpgme_error_t gpgme_op_changepin( gpgme_ctx_t ctx );
728 gpgme_error_t gpgme_changepin_set( gpgme_editcard_t chpin, int which,
729 const char * pinold, const char * pinnew );
730
731 gpgme_error_t gpgme_op_editcard( gpgme_ctx_t ctx );
732 gpgme_error_t gpgme_op_statuscard( gpgme_ctx_t ctx, gpgme_card_t * ret_card );
733
734 gpgme_error_t gpgme_card_new( gpgme_card_t * ret_card );
735 void gpgme_card_release( gpgme_card_t card );
736 const char * gpgme_card_get_string_attr( gpgme_card_t card, gpgme_attr_t what,
737 void ** reserved, int idx );
738 unsigned long gpgme_card_get_ulong_attr( gpgme_card_t card, gpgme_attr_t what,
739 void ** reserved, int idx );
740
741 /* Key revocation */
742 gpgme_error_t gpgme_revcert_new( gpgme_revcert_t *r_cert );
743 void gpgme_revcert_release( gpgme_revcert_t cert );
744 gpgme_error_t gpgme_revcert_parse( const char *data, gpgme_revcert_t cert, char * keyid );
745 gpgme_error_t gpgme_revoke_set( gpgme_editkey_t ctx, const char *uid,
746 const char *text, int reason, int pgpmode,
747 const char *pass );
748 gpgme_error_t gpgme_op_revoke( gpgme_ctx_t c, gpgme_editkey_t rev, gpgme_data_t cert );
749
750 /* Misc - version */
751 gpgme_error_t gpgme_op_version( char **info );
752 void gpgme_set_gettext_handler( char *(*gettext)( const char *id ) );
753
754 /* Misc */
755 void gpgme_set_pgm_string( const char *name );
756 int gpgme_key_count_items( gpgme_key_t key, int what );
757 int gpgme_key_get_cability( gpgme_key_t key, int attr, int keyidx );
758 int gpgme_key_cability_from_algo( gpgme_pk_cipher_t algo );
759 gpgme_error_t gpgme_get_import_status( gpgme_ctx_t ctx, int * import_res,
760 gpgme_recipients_t * r_keys );
761 void gpgme_decrypt_get_status( gpgme_ctx_t ctx, char * keyid,
762 gpgme_op_flags_t *r_flags );
763 void gpgme_decrypt_get_sig_ctx( gpgme_ctx_t ctx, gpgme_sig_t *r_sig );
764
765 /* Edit key interface */
766 gpgme_error_t gpgme_editkey_new( gpgme_editkey_t *ctx );
767 void gpgme_editkey_release( gpgme_editkey_t ctx );
768 void gpgme_editkey_make_invalid( gpgme_editkey_t ctx );
769 int gpgme_editkey_is_valid( gpgme_editkey_t ctx );
770 int gpgme_editkey_is_secret( gpgme_editkey_t ctx, int val );
771
772
773 void gpgme_editkey_trust_set( gpgme_editkey_t ctx, int val );
774 void gpgme_editkey_delsig_set (gpgme_editkey_t ctx, int uid, int signo);
775 gpgme_error_t gpgme_editkey_sign_set (gpgme_editkey_t ctx,
776 const char * passwd,
777 int sigclass,
778 int sigtype,
779 const char * param);
780 void gpgme_editkey_primary_set( gpgme_editkey_t ctx, int id, const char *passwd );
781 void gpgme_editkey_adduid_set( gpgme_editkey_t ctx, const char *name,
782 const char *email, const char *comment,
783 const char *passwd );
784 void gpgme_editkey_deluid_set_id( gpgme_editkey_t ctx, int id );
785 void gpgme_editkey_delkey_set_id( gpgme_editkey_t ctx, int id );
786 gpgme_error_t gpgme_editkey_addkey_set (gpgme_editkey_t ctx,
787 const char * passwd,
788 int algo, int size, int valid);
789 void gpgme_editkey_passwd_set( gpgme_editkey_t ctx,
790 const char * old_pwd, const char * new_pwd,
791 int allow_empty );
792 void gpgme_editkey_expire_set( gpgme_editkey_t ctx, int id, int days,
793 const char *date, const char *passwd );
794 void gpgme_editkey_revsig_set( gpgme_editkey_t ctx, int id, const char *passwd );
795 void gpgme_editkey_revkey_set( gpgme_editkey_t ctx, int id, int reason,
796 const char * passwd );
797 void gpgme_editkey_setpref_set (gpgme_editkey_t ctx, const char * new_prefs,
798 int uid_idx, const char * passwd);
799 int gpgme_editkey_addrev_set (gpgme_editkey_t ctx, const char * userid,
800 const char * passwd);
801 void gpgme_editkey_addphoto_set( gpgme_editkey_t ctx, const char *jpegfile,
802 const char * passwd );
803 void gpgme_editkey_enable_set( gpgme_editkey_t ctx );
804 void gpgme_editkey_disable_set( gpgme_editkey_t ctx );
805
806
807 /* Clipboard interface */
808 gpgme_error_t gpgme_clip_istext_avail( int *r_rc );
809 gpgme_error_t gpgme_clip_is_secured( gpgme_cliptype_t *r_type, int *r_rc );
810 gpgme_error_t gpgme_clip_get_pgptype( gpgme_cliptype_t *r_type );
811 gpgme_error_t gpgme_clip_parse_pgpid( const char *data, gpgme_cliptype_t *r_type );
812 gpgme_error_t gpgme_clip_do_check( int *r_rc );
813
814 #ifdef __cplusplus
815 }
816 #endif
817 #endif /* GPGME_H */

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26