See ChangeLog: Tue Aug 31 17:20:44 CEST 1999 Werner Koch
[gnupg.git] / g10 / main.h
index 2990ef8..df04f40 100644 (file)
@@ -1,14 +1,14 @@
 /* main.h
- *     Copyright (c) 1997 by Werner Koch (dd9jn)
+ *     Copyright (C) 1998 Free Software Foundation, Inc.
  *
- * This file is part of G10.
+ * This file is part of GnuPG.
  *
- * G10 is free software; you can redistribute it and/or modify
+ * GnuPG 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.
  *
- * G10 is distributed in the hope that it will be useful,
+ * GnuPG 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.
 #define G10_MAIN_H
 #include "types.h"
 #include "iobuf.h"
+#include "mpi.h"
 #include "cipher.h"
 #include "keydb.h"
 
+#define DEFAULT_CIPHER_ALGO  CIPHER_ALGO_BLOWFISH
+#define DEFAULT_PUBKEY_ALGO  PUBKEY_ALGO_ELGAMAL
+#define DEFAULT_DIGEST_ALGO  DIGEST_ALGO_RMD160
+
 
 typedef struct {
     int header_okay;
-    PKC_LIST pkc_list;
+    PK_LIST pk_list;
     cipher_filter_context_t cfx;
 } encrypt_filter_context_t;
 
 
 /*-- g10.c --*/
+extern int g10_errors_seen;
+
 #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5 )
   void g10_exit(int rc) __attribute__ ((noreturn));
 #else
   void g10_exit(int rc);
 #endif
+void print_pubkey_algo_note( int algo );
+void print_cipher_algo_note( int algo );
+void print_digest_algo_note( int algo );
+
+/*-- armor.c --*/
+char *make_radix64_string( const byte *data, size_t len );
+
+/*-- misc.c --*/
+void trap_unaligned(void);
+void disable_core_dumps(void);
+u16 checksum_u16( unsigned n );
+u16 checksum( byte *p, unsigned n );
+u16 checksum_mpi( MPI a );
+u16 checksum_mpi_counted_nbits( MPI a );
+u32 buffer_to_u32( const byte *buffer );
+
+/*-- helptext.c --*/
+void display_online_help( const char *keyword );
 
 /*-- encode.c --*/
 int encode_symmetric( const char *filename );
@@ -48,47 +73,58 @@ int encrypt_filter( void *opaque, int control,
 
 
 /*-- sign.c --*/
+int complete_sig( PKT_signature *sig, PKT_secret_key *sk, MD_HANDLE md );
 int sign_file( STRLIST filenames, int detached, STRLIST locusr,
-              int encrypt, STRLIST remusr, const char *outfile );
+              int do_encrypt, STRLIST remusr, const char *outfile );
 int clearsign_file( const char *fname, STRLIST locusr, const char *outfile );
-int sign_key( const char *username, STRLIST locusr );
-int edit_keysigs( const char *username );
-int change_passphrase( const char *username );
 
 /*-- sig-check.c --*/
 int check_key_signature( KBNODE root, KBNODE node, int *is_selfsig );
+int check_key_signature2( KBNODE root, KBNODE node,
+                         int *is_selfsig, u32 *r_expire );
+
+/*-- delkey.c --*/
+int delete_key( const char *username, int secure );
+
+/*-- keyedit.c --*/
+void keyedit_menu( const char *username, STRLIST locusr, STRLIST cmds,
+                                                           int sign_mode );
 
 /*-- keygen.c --*/
+u32 ask_expiredate(void);
 void generate_keypair(void);
+int keygen_add_key_expire( PKT_signature *sig, void *opaque );
+int keygen_add_std_prefs( PKT_signature *sig, void *opaque );
+int generate_subkeypair( KBNODE pub_keyblock, KBNODE sec_keyblock );
 
 /*-- openfile.c --*/
 int overwrite_filep( const char *fname );
-IOBUF open_outfile( const char *fname, int mode );
+char *make_outfile_name( const char *iname );
+char *ask_outfile_name( const char *name, size_t namelen );
+int   open_outfile( const char *iname, int mode, IOBUF *a );
 IOBUF open_sigfile( const char *iname );
+void copy_options_file( const char *destdir );
 
 /*-- seskey.c --*/
 void make_session_key( DEK *dek );
 MPI encode_session_key( DEK *dek, unsigned nbits );
-MPI encode_md_value( MD_HANDLE md, unsigned nbits );
+MPI encode_md_value( int pubkey_algo,  MD_HANDLE md,
+                    int hash_algo, unsigned nbits );
 
 /*-- comment.c --*/
 KBNODE make_comment_node( const char *s );
 KBNODE make_mpi_comment_node( const char *s, MPI a );
 
-/*-- elg.c --*/
-void g10_elg_encrypt( PKT_public_cert *pkc, PKT_pubkey_enc *enc, DEK *dek );
-void g10_elg_sign( PKT_secret_cert *skc, PKT_signature *sig,
-                                        MD_HANDLE md, int digest_algo );
-
-/*-- rsa.c --*/
-void g10_rsa_encrypt( PKT_public_cert *pkc, PKT_pubkey_enc *enc, DEK *dek );
-void g10_rsa_sign( PKT_secret_cert *skc, PKT_signature *sig,
-                                        MD_HANDLE md, int digest_algo );
-
 /*-- import.c --*/
-int import_pubkeys( const char *filename );
+int import_keys( const char *filename, int fast );
+int import_keys_stream( IOBUF inp, int fast );
+int collapse_uids( KBNODE *keyblock );
+
 /*-- export.c --*/
-int export_pubkeys( STRLIST users );
+int export_pubkeys( STRLIST users, int onlyrfc );
+int export_pubkeys_stream( IOBUF out, STRLIST users, int onlyrfc );
+int export_seckeys( STRLIST users );
+
 /* dearmor.c --*/
 int dearmor_file( const char *fname );
 int enarmor_file( const char *fname );
@@ -96,4 +132,24 @@ int enarmor_file( const char *fname );
 /*-- revoke.c --*/
 int gen_revoke( const char *uname );
 
+/*-- keylist.c --*/
+void public_key_list( int nnames, char **names );
+void secret_key_list( int nnames, char **names );
+
+/*-- verify.c --*/
+int verify_signatures( int nfiles, char **files );
+
+/*-- decrypt.c --*/
+int decrypt_message( const char *filename );
+
+/*-- plaintext.c --*/
+int hash_datafiles( MD_HANDLE md, MD_HANDLE md2,
+                   STRLIST files, const char *sigfilename, int textmode );
+
+/*-- signal.c --*/
+void init_signals(void);
+void pause_on_sigusr( int which );
+void block_all_signals(void);
+void unblock_all_signals(void);
+
 #endif /*G10_MAIN_H*/