1997-11-18 15:06:00 +01:00
|
|
|
/* main.h
|
2003-11-13 03:54:12 +01:00
|
|
|
* Copyright (C) 1998, 1999, 2000, 2001, 2002,
|
|
|
|
* 2003 Free Software Foundation, Inc.
|
1997-11-18 15:06:00 +01:00
|
|
|
*
|
1998-12-23 13:41:40 +01:00
|
|
|
* This file is part of GnuPG.
|
1997-11-18 15:06:00 +01:00
|
|
|
*
|
1998-12-23 13:41:40 +01:00
|
|
|
* GnuPG is free software; you can redistribute it and/or modify
|
1997-11-18 15:06:00 +01:00
|
|
|
* 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.
|
|
|
|
*
|
1998-12-23 13:41:40 +01:00
|
|
|
* GnuPG is distributed in the hope that it will be useful,
|
1997-11-18 15:06:00 +01:00
|
|
|
* 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 this program; if not, write to the Free Software
|
|
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
|
|
|
|
*/
|
2002-06-29 15:46:34 +02:00
|
|
|
#ifndef G10_MAIN_H
|
|
|
|
#define G10_MAIN_H
|
|
|
|
#include "types.h"
|
1997-11-24 12:04:11 +01:00
|
|
|
#include "iobuf.h"
|
2002-06-29 15:46:34 +02:00
|
|
|
#include "mpi.h"
|
|
|
|
#include "cipher.h"
|
1997-12-16 20:15:09 +01:00
|
|
|
#include "keydb.h"
|
1997-11-24 23:24:04 +01:00
|
|
|
|
2002-11-24 02:49:32 +01:00
|
|
|
/* It could be argued that the default cipher should be 3DES rather
|
|
|
|
than CAST5, and the default compression should be 0
|
|
|
|
(i.e. uncompressed) rather than 1 (zip). */
|
2002-06-29 15:46:34 +02:00
|
|
|
#define DEFAULT_CIPHER_ALGO CIPHER_ALGO_CAST5
|
|
|
|
#define DEFAULT_DIGEST_ALGO DIGEST_ALGO_SHA1
|
* misc.c (compress_algo_to_string, string_to_compress_algo,
check_compress_algo): Add bzip2.
* compress.c (compress_filter): Make static to help force the use of
push_compress_filter. Remove default algorithm setting since that is done
in push_compress_filter now.
* main.h: Use named algorithm.
* filter.h, compress.c (push_compress_filter, push_compress_filter2): New.
Figure out which is the appropriate compression filter to use, and push it
into place.
* compress.c (handle_compressed), encode.c (encode_simple, encode_crypt),
sign.c (sign_file, sign_symencrypt_file), import.c (read_block), export.c
(do_export): Use push_compress_filter instead of pushing the compression
filter ourselves.
* compress-bz2.c: New. Bzlib versions of the compression filter routines.
* Makefile.am: Include compress-bz2.c if bz2lib is available.
2003-10-31 06:39:02 +01:00
|
|
|
#define DEFAULT_COMPRESS_ALGO COMPRESS_ALGO_ZIP
|
1998-01-02 21:40:10 +01:00
|
|
|
|
2003-11-13 03:54:12 +01:00
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
int header_okay;
|
|
|
|
PK_LIST pk_list;
|
|
|
|
DEK *symkey_dek;
|
|
|
|
STRING2KEY *symkey_s2k;
|
|
|
|
cipher_filter_context_t cfx;
|
2002-06-29 15:46:34 +02:00
|
|
|
} encrypt_filter_context_t;
|
1999-12-08 22:03:03 +01:00
|
|
|
|
2002-06-29 15:46:34 +02:00
|
|
|
struct groupitem
|
|
|
|
{
|
|
|
|
char *name;
|
|
|
|
STRLIST values;
|
|
|
|
struct groupitem *next;
|
|
|
|
};
|
1998-01-02 21:40:10 +01:00
|
|
|
|
2002-06-29 15:46:34 +02:00
|
|
|
/*-- g10.c --*/
|
|
|
|
extern int g10_errors_seen;
|
1998-11-10 13:59:59 +01:00
|
|
|
|
1998-01-28 17:09:43 +01:00
|
|
|
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5 )
|
2002-06-29 15:46:34 +02:00
|
|
|
void g10_exit(int rc) __attribute__ ((noreturn));
|
1998-01-28 17:09:43 +01:00
|
|
|
#else
|
2002-06-29 15:46:34 +02:00
|
|
|
void g10_exit(int rc);
|
1998-01-28 17:09:43 +01:00
|
|
|
#endif
|
1998-12-10 20:20:47 +01:00
|
|
|
void print_pubkey_algo_note( int algo );
|
|
|
|
void print_cipher_algo_note( int algo );
|
|
|
|
void print_digest_algo_note( int algo );
|
1998-01-28 17:09:43 +01:00
|
|
|
|
1999-02-26 17:59:48 +01:00
|
|
|
/*-- armor.c --*/
|
|
|
|
char *make_radix64_string( const byte *data, size_t len );
|
|
|
|
|
1998-04-07 20:16:10 +02:00
|
|
|
/*-- misc.c --*/
|
1998-05-15 20:49:19 +02:00
|
|
|
void trap_unaligned(void);
|
2000-09-18 16:35:34 +02:00
|
|
|
int disable_core_dumps(void);
|
1998-04-07 20:16:10 +02:00
|
|
|
u16 checksum_u16( unsigned n );
|
|
|
|
u16 checksum( byte *p, unsigned n );
|
|
|
|
u16 checksum_mpi( MPI a );
|
1998-06-25 12:19:08 +02:00
|
|
|
u32 buffer_to_u32( const byte *buffer );
|
2002-06-29 15:46:34 +02:00
|
|
|
const byte *get_session_marker( size_t *rlen );
|
1999-10-26 14:14:37 +02:00
|
|
|
int openpgp_cipher_test_algo( int algo );
|
1999-11-13 17:43:23 +01:00
|
|
|
int openpgp_pk_test_algo( int algo, unsigned int usage_flags );
|
2000-09-18 16:35:34 +02:00
|
|
|
int openpgp_pk_algo_usage ( int algo );
|
1999-10-26 14:14:37 +02:00
|
|
|
int openpgp_md_test_algo( int algo );
|
2003-02-22 14:00:18 +01:00
|
|
|
|
|
|
|
#ifdef USE_IDEA
|
2002-06-29 15:46:34 +02:00
|
|
|
void idea_cipher_warn( int show );
|
2003-02-22 14:00:18 +01:00
|
|
|
#else
|
|
|
|
#define idea_cipher_warn(a)
|
|
|
|
#endif
|
2002-06-29 15:46:34 +02:00
|
|
|
|
|
|
|
struct expando_args
|
|
|
|
{
|
|
|
|
PKT_public_key *pk;
|
|
|
|
PKT_secret_key *sk;
|
|
|
|
byte imagetype;
|
|
|
|
};
|
|
|
|
|
|
|
|
char *pct_expando(const char *string,struct expando_args *args);
|
|
|
|
int hextobyte( const char *s );
|
|
|
|
void deprecated_warning(const char *configname,unsigned int configlineno,
|
|
|
|
const char *option,const char *repl1,const char *repl2);
|
|
|
|
const char *compress_algo_to_string(int algo);
|
2002-11-03 01:00:42 +01:00
|
|
|
int string_to_compress_algo(const char *string);
|
2002-06-29 15:46:34 +02:00
|
|
|
int check_compress_algo(int algo);
|
2002-11-25 05:24:41 +01:00
|
|
|
int default_cipher_algo(void);
|
|
|
|
int default_compress_algo(void);
|
* packet.h, build-packet.c (build_sig_subpkt), export.c
(do_export_stream), import.c (remove_bad_stuff, import), parse-packet.c
(dump_sig_subpkt, parse_one_sig_subpkt): Remove vestigal code for the old
sig cache subpacket. This wasn't completely harmless as it caused
subpacket 101 to disappear on import and export.
* options.h, armor.c, cipher.c, g10.c, keyedit.c, pkclist.c, sign.c,
encode.c, getkey.c, revoke.c: The current flags for different levels of
PGP-ness are massively complex. This is step one in simplifying them. No
functional change yet, just use a macro to check for compliance level.
* sign.c (sign_file): Fix bug that causes spurious compression preference
warning.
* sign.c (clearsign_file): Fix bug that prevents proper warning message
from appearing when clearsigning in --pgp2 mode with a non-v3 RSA key.
* main.h, misc.c (compliance_option_string, compliance_string,
compliance_failure), pkclist.c (build_pk_list), sign.c (sign_file,
clearsign_file), encode.c (encode_crypt, write_pubkey_enc_from_list): New
functions to put the "this message may not be usable...." warning in one
place.
* options.h, g10.c (main): Part two of the simplification. Use a single
enum to indicate what we are compliant to (1991, 2440, PGPx, etc.)
* g10.c (main): Show errors for failure in export, send-keys, recv-keys,
and refresh-keys.
* options.h, g10.c (main): Give algorithm warnings for algorithms chosen
against the --pgpX and --openpgp rules.
* keydb.h, pkclist.c (algo_available): Make TIGER192 invalid in --openpgp
mode.
* sign.c (sign_file), pkclist.c (algo_available): Allow passing a hint of
0.
2003-05-03 06:07:45 +02:00
|
|
|
const char *compliance_option_string(void);
|
2003-05-31 23:52:16 +02:00
|
|
|
void compliance_failure(void);
|
|
|
|
|
|
|
|
struct parse_options
|
|
|
|
{
|
|
|
|
char *name;
|
|
|
|
unsigned int bit;
|
|
|
|
};
|
|
|
|
|
|
|
|
int parse_options(char *str,unsigned int *options,struct parse_options *opts);
|
1999-11-13 17:43:23 +01:00
|
|
|
|
1998-11-27 12:42:49 +01:00
|
|
|
/*-- helptext.c --*/
|
|
|
|
void display_online_help( const char *keyword );
|
|
|
|
|
1997-11-18 15:06:00 +01:00
|
|
|
/*-- encode.c --*/
|
2003-11-13 03:54:12 +01:00
|
|
|
int setup_symkey(STRING2KEY **symkey_s2k,DEK **symkey_dek);
|
1997-11-18 15:06:00 +01:00
|
|
|
int encode_symmetric( const char *filename );
|
|
|
|
int encode_store( const char *filename );
|
2003-10-26 04:26:14 +01:00
|
|
|
int encode_crypt( const char *filename, STRLIST remusr, int use_symkey );
|
2002-06-29 15:46:34 +02:00
|
|
|
void encode_crypt_files(int nfiles, char **files, STRLIST remusr);
|
1998-01-02 21:40:10 +01:00
|
|
|
int encrypt_filter( void *opaque, int control,
|
|
|
|
IOBUF a, byte *buf, size_t *ret_len);
|
|
|
|
|
1997-11-18 15:06:00 +01:00
|
|
|
|
1997-11-24 12:04:11 +01:00
|
|
|
/*-- sign.c --*/
|
2002-06-29 15:46:34 +02:00
|
|
|
int complete_sig( PKT_signature *sig, PKT_secret_key *sk, MD_HANDLE md );
|
1998-01-13 20:04:23 +01:00
|
|
|
int sign_file( STRLIST filenames, int detached, STRLIST locusr,
|
1999-02-16 14:16:33 +01:00
|
|
|
int do_encrypt, STRLIST remusr, const char *outfile );
|
1998-02-04 19:54:31 +01:00
|
|
|
int clearsign_file( const char *fname, STRLIST locusr, const char *outfile );
|
2002-06-29 15:46:34 +02:00
|
|
|
int sign_symencrypt_file (const char *fname, STRLIST locusr);
|
1998-04-09 13:19:09 +02:00
|
|
|
|
|
|
|
/*-- sig-check.c --*/
|
2002-09-13 14:59:31 +02:00
|
|
|
int check_revocation_keys (PKT_public_key *pk, PKT_signature *sig);
|
1998-04-09 13:19:09 +02:00
|
|
|
int check_key_signature( KBNODE root, KBNODE node, int *is_selfsig );
|
2002-12-29 16:58:44 +01:00
|
|
|
int check_key_signature2( KBNODE root, KBNODE node, PKT_public_key *check_pk,
|
2003-07-20 02:10:13 +02:00
|
|
|
PKT_public_key *ret_pk, int *is_selfsig,
|
|
|
|
u32 *r_expiredate, int *r_expired );
|
1998-04-09 13:19:09 +02:00
|
|
|
|
1998-09-11 07:47:32 +02:00
|
|
|
/*-- delkey.c --*/
|
2002-06-29 15:46:34 +02:00
|
|
|
int delete_keys( STRLIST names, int secret, int allow_both );
|
1998-09-11 07:47:32 +02:00
|
|
|
|
|
|
|
/*-- keyedit.c --*/
|
1999-07-12 18:49:22 +02:00
|
|
|
void keyedit_menu( const char *username, STRLIST locusr, STRLIST cmds,
|
|
|
|
int sign_mode );
|
2002-08-19 10:28:00 +02:00
|
|
|
void show_basic_key_info (KBNODE keyblock);
|
1997-11-24 12:04:11 +01:00
|
|
|
|
1997-11-18 15:06:00 +01:00
|
|
|
/*-- keygen.c --*/
|
2002-06-29 15:46:34 +02:00
|
|
|
u32 ask_expire_interval(int object);
|
1998-10-18 17:21:22 +02:00
|
|
|
u32 ask_expiredate(void);
|
2003-10-08 17:21:20 +02:00
|
|
|
void generate_keypair( const char *fname, const char *card_serialno );
|
2002-06-29 15:46:34 +02:00
|
|
|
int keygen_set_std_prefs (const char *string,int personal);
|
2002-11-03 01:00:42 +01:00
|
|
|
PKT_user_id *keygen_get_std_prefs (void);
|
2002-12-04 19:50:10 +01:00
|
|
|
int keygen_add_key_expire( PKT_signature *sig, void *opaque );
|
1998-07-29 21:35:05 +02:00
|
|
|
int keygen_add_std_prefs( PKT_signature *sig, void *opaque );
|
2002-06-29 15:46:34 +02:00
|
|
|
int keygen_upd_std_prefs( PKT_signature *sig, void *opaque );
|
2003-08-31 05:45:41 +02:00
|
|
|
int keygen_add_keyserver_url(PKT_signature *sig, void *opaque);
|
2002-06-29 15:46:34 +02:00
|
|
|
int keygen_add_revkey(PKT_signature *sig, void *opaque);
|
1998-07-29 21:35:05 +02:00
|
|
|
int generate_subkeypair( KBNODE pub_keyblock, KBNODE sec_keyblock );
|
1997-11-18 15:06:00 +01:00
|
|
|
|
1997-11-24 12:04:11 +01:00
|
|
|
/*-- openfile.c --*/
|
1997-11-18 15:06:00 +01:00
|
|
|
int overwrite_filep( const char *fname );
|
1999-06-01 16:08:57 +02:00
|
|
|
char *make_outfile_name( const char *iname );
|
1999-07-01 12:53:35 +02:00
|
|
|
char *ask_outfile_name( const char *name, size_t namelen );
|
1998-08-11 19:29:34 +02:00
|
|
|
int open_outfile( const char *iname, int mode, IOBUF *a );
|
2003-04-15 17:46:13 +02:00
|
|
|
IOBUF open_sigfile( const char *iname, progress_filter_context_t *pfx );
|
2000-07-14 19:34:53 +02:00
|
|
|
void try_make_homedir( const char *fname );
|
1997-11-18 15:06:00 +01:00
|
|
|
|
1997-11-24 23:24:04 +01:00
|
|
|
/*-- seskey.c --*/
|
|
|
|
void make_session_key( DEK *dek );
|
|
|
|
MPI encode_session_key( DEK *dek, unsigned nbits );
|
2003-12-04 05:34:08 +01:00
|
|
|
MPI encode_md_value( int pubkey_algo, MD_HANDLE md,
|
|
|
|
int hash_algo, unsigned nbits );
|
1997-11-24 23:24:04 +01:00
|
|
|
|
1997-12-16 20:15:09 +01:00
|
|
|
/*-- comment.c --*/
|
|
|
|
KBNODE make_comment_node( const char *s );
|
2002-06-29 15:46:34 +02:00
|
|
|
KBNODE make_mpi_comment_node( const char *s, MPI a );
|
1997-11-24 23:24:04 +01:00
|
|
|
|
1998-01-16 22:15:24 +01:00
|
|
|
/*-- import.c --*/
|
2002-07-23 00:26:14 +02:00
|
|
|
int parse_import_options(char *str,unsigned int *options);
|
2002-09-23 15:03:52 +02:00
|
|
|
void import_keys( char **fnames, int nnames,
|
* main.h, import.c (parse_import_options, fix_hkp_corruption, import_one,
delete_inv_parts), g10.c (main): New import-option
"repair-hkp-subkey-bug", which repairs as much as possible the HKP
mangling multiple subkeys bug. It is on by default for keyserver
receives, and off by default for regular --import.
* main.h, import.c (import, import_one, delete_inv_parts), hkp.c
(hkp_ask_import), keyserver.c (keyserver_spawn): Use keyserver import
options when doing keyserver receives.
2002-07-24 23:17:19 +02:00
|
|
|
void *stats_hd, unsigned int options );
|
2002-09-23 15:03:52 +02:00
|
|
|
int import_keys_stream( IOBUF inp,
|
* main.h, import.c (parse_import_options, fix_hkp_corruption, import_one,
delete_inv_parts), g10.c (main): New import-option
"repair-hkp-subkey-bug", which repairs as much as possible the HKP
mangling multiple subkeys bug. It is on by default for keyserver
receives, and off by default for regular --import.
* main.h, import.c (import, import_one, delete_inv_parts), hkp.c
(hkp_ask_import), keyserver.c (keyserver_spawn): Use keyserver import
options when doing keyserver receives.
2002-07-24 23:17:19 +02:00
|
|
|
void *stats_hd, unsigned int options );
|
2002-06-29 15:46:34 +02:00
|
|
|
void *import_new_stats_handle (void);
|
|
|
|
void import_release_stats_handle (void *p);
|
|
|
|
void import_print_stats (void *hd);
|
|
|
|
|
1999-05-22 22:54:54 +02:00
|
|
|
int collapse_uids( KBNODE *keyblock );
|
1999-01-19 19:37:41 +01:00
|
|
|
|
1998-01-26 23:09:01 +01:00
|
|
|
/*-- export.c --*/
|
* options.h, main.h, export.c (parse_export_options, do_export_stream),
g10.c (main): add new --export-options option. Current flags are
"include-non-rfc", "include-local-sigs", "include-attributes", and
"include-sensitive-revkeys".
* options.h, hkp.c (hkp_export), keyserver.c (parse_keyserver_options,
keyserver_spawn): try passing unknown keyserver options to export options,
and if successful, use them when doing a keyserver --send-key.
* build-packet.c (build_sig_subpkt): We do not generate
SIGSUBPKT_PRIV_VERIFY_CACHE anymore.
2002-07-22 21:07:21 +02:00
|
|
|
int parse_export_options(char *str,unsigned int *options);
|
|
|
|
int export_pubkeys( STRLIST users, unsigned int options );
|
2003-02-26 18:11:24 +01:00
|
|
|
int export_pubkeys_stream( IOBUF out, STRLIST users,
|
|
|
|
KBNODE *keyblock_out, unsigned int options );
|
1998-06-29 14:30:57 +02:00
|
|
|
int export_seckeys( STRLIST users );
|
2000-07-14 19:34:53 +02:00
|
|
|
int export_secsubkeys( STRLIST users );
|
1998-06-29 14:30:57 +02:00
|
|
|
|
1998-02-16 21:05:02 +01:00
|
|
|
/* dearmor.c --*/
|
|
|
|
int dearmor_file( const char *fname );
|
1998-02-17 21:48:52 +01:00
|
|
|
int enarmor_file( const char *fname );
|
1998-01-16 22:15:24 +01:00
|
|
|
|
1998-02-16 21:05:02 +01:00
|
|
|
/*-- revoke.c --*/
|
2000-07-14 19:34:53 +02:00
|
|
|
struct revocation_reason_info;
|
1998-02-16 21:05:02 +01:00
|
|
|
int gen_revoke( const char *uname );
|
2002-06-29 15:46:34 +02:00
|
|
|
int gen_desig_revoke( const char *uname );
|
2000-07-14 19:34:53 +02:00
|
|
|
int revocation_reason_build_cb( PKT_signature *sig, void *opaque );
|
|
|
|
struct revocation_reason_info *
|
|
|
|
ask_revocation_reason( int key_rev, int cert_rev, int hint );
|
|
|
|
void release_revocation_reason_info( struct revocation_reason_info *reason );
|
1997-12-31 13:32:54 +01:00
|
|
|
|
1998-03-05 10:22:13 +01:00
|
|
|
/*-- keylist.c --*/
|
2000-07-14 19:34:53 +02:00
|
|
|
void public_key_list( STRLIST list );
|
|
|
|
void secret_key_list( STRLIST list );
|
2002-12-04 00:31:48 +01:00
|
|
|
void reorder_keyblock (KBNODE keyblock);
|
2002-06-29 15:46:34 +02:00
|
|
|
void list_keyblock( KBNODE keyblock, int secret, int fpr, void *opaque );
|
|
|
|
void print_fingerprint (PKT_public_key *pk, PKT_secret_key *sk, int mode);
|
* mainproc.c (check_sig_and_print), main.h, keylist.c (show_policy,
show_notation): Collapse the old print_notation_data into show_policy()
and show_notation() so there is only one function to print notations and
policy URLs.
* options.h, main.h, g10.c (main), keyedit.c (print_and_check_one_sig),
keylist.c (list_one, list_keyblock_print), pkclist.c (do_edit_ownertrust),
sign.c (mk_notation_and_policy): New "list-options" and "verify-options"
commands. These replace the existing --show-photos/--no-show-photos,
--show-notation/--no-show-notation,
--show-policy-url/--no-show-policy-url, and --show-keyring options. The
new method is more flexible since a user can specify (for example) showing
photos during sig verification, but not in key listings. The old options
are emulated.
2003-06-01 01:23:19 +02:00
|
|
|
void show_policy_url(PKT_signature *sig,int indent,int mode);
|
2003-06-05 04:06:12 +02:00
|
|
|
void show_keyserver_url(PKT_signature *sig,int indent,int mode);
|
* mainproc.c (check_sig_and_print), main.h, keylist.c (show_policy,
show_notation): Collapse the old print_notation_data into show_policy()
and show_notation() so there is only one function to print notations and
policy URLs.
* options.h, main.h, g10.c (main), keyedit.c (print_and_check_one_sig),
keylist.c (list_one, list_keyblock_print), pkclist.c (do_edit_ownertrust),
sign.c (mk_notation_and_policy): New "list-options" and "verify-options"
commands. These replace the existing --show-photos/--no-show-photos,
--show-notation/--no-show-notation,
--show-policy-url/--no-show-policy-url, and --show-keyring options. The
new method is more flexible since a user can specify (for example) showing
photos during sig verification, but not in key listings. The old options
are emulated.
2003-06-01 01:23:19 +02:00
|
|
|
void show_notation(PKT_signature *sig,int indent,int mode);
|
* trustdb.h, trustdb.c (is_disabled), gpgv.c (is_disabled): Rename
is_disabled to cache_disabled_value, which now takes a pk and not just the
keyid. This is for speed since there is no need to re-fetch a key when we
already have that key handy. Cache the result of the check so we don't
need to hit the trustdb more than once.
* getkey.c (skip_disabled): New function to get a pk and call is_disabled
on it. (key_byname): Use it here.
* packet.h, getkey.c (skip_disabled), keylist.c (print_capabilities): New
"pk_is_disabled" macro to retrieve the cached disabled value if available,
and fill it in via cache_disabled_value if not available.
* trustdb.c (get_validity): Cache the disabled value since we have it
handy and it might be useful later.
* parse-packet.c (parse_key): Clear disabled flag when parsing a new key.
Just in case someone forgets to clear the whole key.
* getkey.c (merge_selfsigs_main): Add an "if all else fails" path for
setting a single user ID primary when there are multiple set primaries all
at the same second, or no primaries set and the most recent user IDs are
at the same second, or no signed user IDs at all. This is arbitrary, but
deterministic.
* exec.h, photoid.h: Add copyright message.
* keylist.c (list_keyblock_print): Don't dump attribs for
revoked/expired/etc uids for non-colon key listings. This is for
consistency with --show-photos.
* main.h, keylist.c (dump_attribs), mainproc.c (check_sig_and_print): Dump
attribs if --attrib-fd is set when verifying signatures.
* g10.c (main): New --gnupg option to disable the various --openpgp,
--pgpX, etc. options. This is the same as --no-XXXX for those options.
* revoke.c (ask_revocation_reason): Clear old reason if user elects to
repeat question. This is bug 153.
* keyedit.c (sign_uids): Show keyid of the key making the signature.
2003-05-21 18:42:22 +02:00
|
|
|
void dump_attribs(const PKT_user_id *uid,
|
|
|
|
PKT_public_key *pk,PKT_secret_key *sk);
|
2002-06-29 15:46:34 +02:00
|
|
|
void set_attrib_fd(int fd);
|
2002-10-18 17:41:33 +02:00
|
|
|
void print_seckey_info (PKT_secret_key *sk);
|
2003-10-02 12:20:12 +02:00
|
|
|
void print_pubkey_info (FILE *fp, PKT_public_key *pk);
|
1998-03-09 22:44:06 +01:00
|
|
|
|
|
|
|
/*-- verify.c --*/
|
2002-06-29 15:46:34 +02:00
|
|
|
void print_file_status( int status, const char *name, int what );
|
1998-03-09 22:44:06 +01:00
|
|
|
int verify_signatures( int nfiles, char **files );
|
2000-07-14 19:34:53 +02:00
|
|
|
int verify_files( int nfiles, char **files );
|
1998-03-09 22:44:06 +01:00
|
|
|
|
|
|
|
/*-- decrypt.c --*/
|
|
|
|
int decrypt_message( const char *filename );
|
2002-06-29 15:46:34 +02:00
|
|
|
void decrypt_messages(int nfiles, char **files);
|
1998-03-09 22:44:06 +01:00
|
|
|
|
|
|
|
/*-- plaintext.c --*/
|
2002-06-29 15:46:34 +02:00
|
|
|
int hash_datafiles( MD_HANDLE md, MD_HANDLE md2,
|
1999-05-19 16:12:26 +02:00
|
|
|
STRLIST files, const char *sigfilename, int textmode );
|
1998-03-05 10:22:13 +01:00
|
|
|
|
2002-06-29 15:46:34 +02:00
|
|
|
/*-- pipemode.c --*/
|
|
|
|
void run_in_pipemode (void);
|
|
|
|
|
1998-03-19 16:27:29 +01:00
|
|
|
/*-- signal.c --*/
|
|
|
|
void init_signals(void);
|
1998-08-11 19:29:34 +02:00
|
|
|
void pause_on_sigusr( int which );
|
1998-11-08 18:23:14 +01:00
|
|
|
void block_all_signals(void);
|
|
|
|
void unblock_all_signals(void);
|
1998-03-19 16:27:29 +01:00
|
|
|
|
2003-10-08 17:21:20 +02:00
|
|
|
#ifdef ENABLE_CARD_SUPPORT
|
|
|
|
/*-- card-util.c --*/
|
|
|
|
void change_pin (int no);
|
2003-10-21 20:22:21 +02:00
|
|
|
void card_status (FILE *fp, char *serialno, size_t serialnobuflen);
|
2003-10-08 17:21:20 +02:00
|
|
|
void card_edit (STRLIST commands);
|
|
|
|
#endif
|
|
|
|
|
2002-06-29 15:46:34 +02:00
|
|
|
#endif /*G10_MAIN_H*/
|