
2003-05-29 Marcus Brinkmann <marcus@g10code.de> * gpgme.texi (Exporting Keys): Change and document prototypes. Add new gpgme_op_export_ext and gpgme_op_export_ext_start variants. (Selecting Recipients): Section removed. (Encrypting a Plaintext): Change prototypes and document the changes. gpgme/ 2003-05-29 Marcus Brinkmann <marcus@g10code.de> * gpgme.h (gpgme_op_export_start): Change second arg to const char *. (gpgme_op_export): Likewise. (gpgme_op_export_ext_start): New prototype. (gpgme_op_export_ext): Likewise. * engine.h: Likewise for _gpgme_engine_op_export and _gpgme_engine_op_export_ext. * engine-backend.h (struct engine_ops): Change second argument of prototype of export to const char *, and add reserverd int as third argument. Add prototype for export_ext. * engine.c (_gpgme_engine_op_export_ext): New function. (_gpgme_engine_op_export): Change second argument of prototype of export to const char *, and add reserverd int as third argument. * rungpg.c (gpg_export): Change second argument of prototype of export to const char *, and add reserverd int as third argument. (gpg_export_ext): New function. (gpg_keylist_ext): Break loop at error. (_gpgme_engine_ops_gpg): Add gpg_export_ext. * engine-gpgsm.c (gpgsm_export): Change second argument of prototype of export to const char *, and add reserverd int as third argument. (gpgsm_export_ext): New function. (_gpgme_engine_ops_gpgsm): Add gpgsm_export_ext. * export.c (export_start): Change second argument of prototype of export to const char *, and add reserverd int as third argument. (gpgme_op_export_start): Likewise. (export_ext_start): New function. (gpgme_op_export_ext_start): Likewise. (gpgme_op_export_ext): Likewise. * gpgme.h (gpgme_keylist_mode_t): New type for anonymous enum. (gpgme_sigsum_t): New type for anonymous enum. * encrypt-sign.c (encrypt_sign_start): Check for errors earlier, and return an error if RECP is not set. * Makefile.am (libgpgme_la_SOURCES): Remove user-id.c. * user-id.c: Remove file. * ops.h: Remove prototype for _gpgme_user_ids_all_valid. * gpgme.h (gpgme_encrypt_flags_t): New type. (gpgme_op_encrypt_start): Change second parameter to type gpgme_key_t[], and add third parameter. (gpgme_op_encrypt): Likewise. (gpgme_op_encrypt_sign_start): Likewise. (gpgme_op_encrypt_sign): Likewise. * encrypt.c (encrypt_start): Likewise. (gpgme_op_encrypt_start): Likewise. (gpgme_op_encrypt): Likewise. Pass flags to engine. * encrypt-sign.c (encrypt_sign_start): Likewise. (gpgme_op_encrypt_sign_start): Likewise. (gpgme_op_encrypt_sign): Likewise. * engine-backend.h (struct engine_ops): Likewise for prototypes of encrypt and encrypt_sign. * engine.h: Likewise for prototypes of _gpgme_engine_op_encrypt and _gpgme_engine_op_encrypt_sign. * engine.c (_gpgme_engine_op_encrypt): Likewise. (_gpgme_engine_op_encrypt_sign): Likewise. * rungpg.c (gpg_encrypt): Likewise. (gpg_encrypt_sign): Likewise. * rungpg.c (gpg_encrypt): Check flags for always trust option. * engine-gpgsm.c (gpgsm_encrypt): Likewise. (set_recipients): Rewritten to use keys instead user IDs. * rungpg.c (append_args_from_recipients): Rewritten to use keys instead user IDs. * encrypt.c (_gpgme_encrypt_status_handler): Change errors returned to GPGME_Invalid_Key and GPGME_General_Error. tests/ 2003-05-29 Marcus Brinkmann <marcus@g10code.de> * gpg/t-encrypt-sym.c (main): Adapt to new syntax. * gpg/t-encrypt.c (main): Likewise. * gpg/t-eventloop.c (main): Likewise. * gpg/t-encrypt-sign.c (main): Likewise. * gpgsm/t-export.c (main): Likewise. * gpgsm/t-encrypt.c (main): Likewise.
108 lines
3.1 KiB
C
108 lines
3.1 KiB
C
/* context.h - Definitions for a GPGME context.
|
||
Copyright (C) 2000 Werner Koch (dd9jn)
|
||
Copyright (C) 2001, 2002, 2003 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 General Public License as published by
|
||
the Free Software Foundation; either version 2 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
|
||
General Public License for more details.
|
||
|
||
You should have received a copy of the GNU General Public License
|
||
along with GPGME; if not, write to the Free Software Foundation,
|
||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||
|
||
#ifndef CONTEXT_H
|
||
#define CONTEXT_H
|
||
|
||
#include "gpgme.h"
|
||
#include "engine.h"
|
||
#include "wait.h"
|
||
|
||
|
||
/* Operations might require to remember arbitrary information and data
|
||
objects during invocations of the status handler. The
|
||
ctx_op_data structure provides a generic framework to hook in
|
||
such additional data. */
|
||
typedef enum
|
||
{
|
||
OPDATA_DECRYPT, OPDATA_SIGN, OPDATA_ENCRYPT, OPDATA_PASSPHRASE,
|
||
OPDATA_IMPORT, OPDATA_GENKEY, OPDATA_KEYLIST, OPDATA_EDIT,
|
||
OPDATA_VERIFY, OPDATA_TRUSTLIST
|
||
} ctx_op_data_id_t;
|
||
|
||
|
||
struct ctx_op_data
|
||
{
|
||
/* The next element in the linked list, or NULL if this is the last
|
||
element. */
|
||
struct ctx_op_data *next;
|
||
|
||
/* The type of the hook data, which can be used by a routine to
|
||
lookup the hook data. */
|
||
ctx_op_data_id_t type;
|
||
|
||
/* The function to release HOOK and all its associated resources.
|
||
Can be NULL if no special dealllocation routine is necessary. */
|
||
void (*cleanup) (void *hook);
|
||
|
||
/* The hook that points to the operation data. */
|
||
void *hook;
|
||
};
|
||
typedef struct ctx_op_data *ctx_op_data_t;
|
||
|
||
|
||
/* The context defines an environment in which crypto operations can
|
||
be performed (sequentially). */
|
||
struct gpgme_context
|
||
{
|
||
/* The protocol used by this context. */
|
||
gpgme_protocol_t protocol;
|
||
|
||
/* The running engine process. */
|
||
engine_t engine;
|
||
|
||
/* True if armor mode should be used. */
|
||
unsigned int use_armor : 1;
|
||
|
||
/* True if text mode should be used. */
|
||
unsigned int use_textmode : 1;
|
||
|
||
/* Flags for keylist mode. */
|
||
gpgme_keylist_mode_t keylist_mode;
|
||
|
||
/* Number of certs to be included. */
|
||
unsigned int include_certs;
|
||
|
||
/* The number of keys in signers. */
|
||
unsigned int signers_len;
|
||
|
||
/* Size of the following array. */
|
||
unsigned int signers_size;
|
||
gpgme_key_t *signers;
|
||
|
||
/* The operation data hooked into the context. */
|
||
ctx_op_data_t op_data;
|
||
|
||
/* The user provided passphrase callback and its hook value. */
|
||
gpgme_passphrase_cb_t passphrase_cb;
|
||
void *passphrase_cb_value;
|
||
|
||
/* The user provided progress callback and its hook value. */
|
||
gpgme_progress_cb_t progress_cb;
|
||
void *progress_cb_value;
|
||
|
||
/* A list of file descriptors in active use by the current
|
||
operation. */
|
||
struct fd_table fdt;
|
||
struct gpgme_io_cbs io_cbs;
|
||
};
|
||
|
||
#endif /* CONTEXT_H */
|