mirror of
git://git.gnupg.org/gnupg.git
synced 2025-07-02 22:46:30 +02:00
This commit was manufactured by cvs2svn to create branch
'GNUPG-1-9-BRANCH'.
This commit is contained in:
parent
8d76177f10
commit
82a17c9fb3
563 changed files with 0 additions and 267875 deletions
|
@ -1,310 +0,0 @@
|
|||
2002-10-14 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* keyserver.h: Go to KEYSERVER_PROTO_VERSION 1.
|
||||
|
||||
2002-10-08 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* keyserver.h: Add new error code KEYSERVER_UNREACHABLE.
|
||||
|
||||
2002-10-03 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* util.h: Add new log_warning logger command which can be switched
|
||||
between log_info and log_error via log_set_strict.
|
||||
|
||||
2002-09-24 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* keyserver.h: Add some new error codes for better GPA support.
|
||||
|
||||
2002-09-10 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* mpi.h (mpi_is_protected, mpi_set_protect_flag)
|
||||
(mpi_clear_protect_flag): Removed.
|
||||
(mpi_get_nbit_info, mpi_set_nbit_info): Removed.
|
||||
|
||||
2002-08-13 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* cipher.h: Add AES aliases for RIJNDAEL algo numbers.
|
||||
|
||||
2002-08-07 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* cipher.h: Add md_algo_present().
|
||||
|
||||
2002-08-06 Stefan Bellon <sbellon@sbellon.de>
|
||||
|
||||
* util.h [__riscos__]: Added riscos_getchar().
|
||||
|
||||
2002-06-21 Stefan Bellon <sbellon@sbellon.de>
|
||||
|
||||
* util.h [__riscos__]: Further moving away of RISC OS specific
|
||||
stuff from general code.
|
||||
|
||||
2002-06-20 Stefan Bellon <sbellon@sbellon.de>
|
||||
|
||||
* util.h [__riscos__]: Added riscos_set_filetype().
|
||||
|
||||
2002-06-14 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* util.h: Add pop_strlist() from strgutil.c.
|
||||
|
||||
2002-06-07 Stefan Bellon <sbellon@sbellon.de>
|
||||
|
||||
* util.h [__riscos__]: RISC OS needs strings.h for strcasecmp()
|
||||
and strncasecmp().
|
||||
|
||||
2002-05-22 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* util.h: Add strncasecmp. Removed stricmp and memicmp.
|
||||
|
||||
2002-05-10 Stefan Bellon <sbellon@sbellon.de>
|
||||
|
||||
* mpi.h: New function mpi_debug_alloc_like for M_DEBUG.
|
||||
|
||||
* util.h [__riscos__]: Make use of __func__ that later
|
||||
Norcroft compiler provides.
|
||||
|
||||
* memory.h: Fixed wrong definition of m_alloc_secure_clear.
|
||||
|
||||
2002-04-23 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* util.h: New function answer_is_yes_no_default() to give a
|
||||
default answer.
|
||||
|
||||
2002-04-22 Stefan Bellon <sbellon@sbellon.de>
|
||||
|
||||
* util.h [__riscos__]: Removed riscos_open, riscos_fopen and
|
||||
riscos_fstat as those special versions aren't needed anymore.
|
||||
|
||||
2002-02-19 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* keyserver.h: Add KEYSERVER_NOT_SUPPORTED for unsupported actions
|
||||
(say, a keyserver that has no way to search, or a readonly
|
||||
keyserver that has no way to add).
|
||||
|
||||
2002-01-02 Stefan Bellon <sbellon@sbellon.de>
|
||||
|
||||
* util.h [__riscos__]: Updated prototype list.
|
||||
|
||||
* types.h [__riscos__]: Changed comment wording.
|
||||
|
||||
2001-12-27 David Shaw <dshaw@jabberwocky.com>
|
||||
|
||||
* KEYSERVER_SCHEME_NOT_FOUND should be 127 to match the POSIX
|
||||
system() (via /bin/sh) way of signaling this.
|
||||
|
||||
* Added G10ERR_KEYSERVER
|
||||
|
||||
2001-12-27 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* util.h [MINGW32]: Fixed name of include file.
|
||||
|
||||
2001-12-22 Timo Schulz <ts@winpt.org>
|
||||
|
||||
* util.h (is_file_compressed): New.
|
||||
|
||||
2001-12-19 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* util.h [CYGWIN32]: Allow this as an alias for MINGW32. Include
|
||||
stdarg.h becuase we use the va_list type. By Disastry.
|
||||
|
||||
2001-09-28 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* cipher.h (PUBKEY_USAGE_CERT): New.
|
||||
|
||||
2001-09-07 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* util.h: Add strsep().
|
||||
|
||||
2001-08-30 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* cipher.h (DEK): Added use_mdc.
|
||||
|
||||
2001-08-24 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* cipher.h (md_write): Made buf arg const.
|
||||
|
||||
2001-08-20 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* cipher.h (DEK): Added algo_info_printed;
|
||||
|
||||
* util.h [__riscos__]: Added prototypes and made sure that we
|
||||
never use __attribute__.
|
||||
* cipher.h, iobuf.h, memory.h, mpi.h [__riscos__]: extern hack.
|
||||
* i18n.h [__riscos__]: Use another include file
|
||||
|
||||
2001-05-30 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* ttyio.h (tty_printf): Add missing parenthesis for non gcc.
|
||||
* http.h: Removed trailing comma to make old ccs happy. Both are
|
||||
by Albert Chin.
|
||||
|
||||
2001-05-25 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* ttyio.h (tty_printf): Add printf attribute.
|
||||
|
||||
2001-04-23 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* http.h: New flag HTTP_FLAG_NO_SHUTDOWN.
|
||||
|
||||
2001-04-13 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* iobuf.h: Removed iobuf_fopen.
|
||||
|
||||
2001-03-01 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* errors.h (G10ERR_UNU_SECKEY,G10ERR_UNU_PUBKEY): New
|
||||
|
||||
2000-11-30 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* iobuf.h (iobuf_translate_file_handle): Add prototype.
|
||||
|
||||
2000-11-11 Paul Eggert <eggert@twinsun.com>
|
||||
|
||||
* iobuf.h (iobuf_get_filelength): Now returns off_t, not u32.
|
||||
(struct iobuf_struct, iobuf_set_limit,
|
||||
iobuf_tell, iobuf_seek): Use off_t, not ulong, for file offsets.
|
||||
|
||||
2000-10-12 Werner Koch <wk@gnupg.org>
|
||||
|
||||
* mpi.h: Changed the way mpi_limb_t is defined.
|
||||
|
||||
Wed Sep 6 17:55:47 CEST 2000 Werner Koch <wk@openit.de>
|
||||
|
||||
* iobuf.c (IOBUF_FILELENGTH_LIMIT): New.
|
||||
|
||||
2000-03-14 14:03:43 Werner Koch (wk@habibti.openit.de)
|
||||
|
||||
* types.h (HAVE_U64_TYPEDEF): Defined depending on configure test.
|
||||
|
||||
Thu Jan 13 19:31:58 CET 2000 Werner Koch <wk@gnupg.de>
|
||||
|
||||
* types.h (HAVE_U64_TYPEDEF): Add a test for _LONGLONG which fixes
|
||||
this long living SGI bug. Reported by Alec Habig.
|
||||
|
||||
Sat Dec 4 12:30:28 CET 1999 Werner Koch <wk@gnupg.de>
|
||||
|
||||
* iobuf.h (IOBUFCTRL_CANCEL): Nww.
|
||||
|
||||
Mon Oct 4 21:23:04 CEST 1999 Werner Koch <wk@gnupg.de>
|
||||
|
||||
* errors.h (G10ERR_NOT_PROCESSED): New.
|
||||
|
||||
Wed Sep 15 16:22:17 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||
|
||||
|
||||
* i18n.h: Add support for simple-gettext.
|
||||
|
||||
Tue Jun 29 21:44:25 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||
|
||||
|
||||
* util.h (stricmp): Use strcasecmp as replacement.
|
||||
|
||||
Sat Jun 26 12:15:59 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||
|
||||
|
||||
* cipher.h (MD_HANDLE): Assigned a structure name.
|
||||
|
||||
Fri Apr 9 12:26:25 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||
|
||||
* cipher.h (BLOWFISH160): Removed.
|
||||
|
||||
Tue Apr 6 19:58:12 CEST 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||
|
||||
* cipher.h (DEK): increased max. key length to 32 bytes
|
||||
|
||||
|
||||
Sat Feb 20 21:40:49 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||
|
||||
* g10lib.h: Removed file and changed all files that includes this.
|
||||
|
||||
Tue Feb 16 14:10:02 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||
|
||||
* types.h (STRLIST): Add field flags.
|
||||
|
||||
Wed Feb 10 17:15:39 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||
|
||||
* cipher.h (CIPHER_ALGO_TWOFISH): Chnaged ID to 10 and renamed
|
||||
the old experimenatl algorithm to xx_OLD.
|
||||
|
||||
Thu Jan 7 18:00:58 CET 1999 Werner Koch <wk@isil.d.shuttle.de>
|
||||
|
||||
* cipher.h (MD_BUFFER_SIZE): Removed.
|
||||
|
||||
Mon Dec 14 21:18:49 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
||||
|
||||
* types.h: fix for SUNPRO_C
|
||||
|
||||
Tue Dec 8 13:15:16 CET 1998 Werner Koch <wk@isil.d.shuttle.de>
|
||||
|
||||
* mpi.h (MPI): Changed the structure name to gcry_mpi and
|
||||
changed all users.
|
||||
|
||||
Tue Oct 20 11:40:00 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||
|
||||
* iobuf.h (iobuf_get_temp_buffer): New.
|
||||
|
||||
Tue Oct 13 12:40:48 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||
|
||||
* iobuf.h (iobuf_get): Now uses .nofast
|
||||
(iobuf_get2): Removed.
|
||||
|
||||
Mon Sep 14 09:17:22 1998 Werner Koch (wk@(none))
|
||||
|
||||
* util.h (HAVE_ATEXIT): New.
|
||||
(HAVE_RAISE): New.
|
||||
|
||||
Mon Jul 6 10:41:55 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||
|
||||
* cipher.h (PUBKEY_USAGE_): New.
|
||||
|
||||
Mon Jul 6 09:49:51 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||
|
||||
* iobuf.h (iobuf_set_error): New.
|
||||
(iobuf_error): New.
|
||||
|
||||
Sat Jun 13 17:31:32 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||
|
||||
* g10lib.h: New as interface for the g10lib.
|
||||
|
||||
Mon Jun 8 22:14:48 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||
|
||||
* cipher.h (CIPHER_ALGO_CAST5): Changed name from .. CAST
|
||||
|
||||
Thu May 21 13:25:51 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||
|
||||
* cipher.h: removed ROT 5 and changed one id and add dummy
|
||||
|
||||
Tue May 19 18:09:05 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||
|
||||
* cipher.h (DIGEST_ALGO_TIGER): Chnaged id from 101 to 6.
|
||||
|
||||
Mon May 4 16:37:17 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||
|
||||
* cipher.h (PUBKEY_ALGO_ELGAMAL_E): New, with value of the
|
||||
old one.
|
||||
* (is_ELGAMAL, is_RSA): New macros
|
||||
|
||||
Sun Apr 26 14:35:24 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||
|
||||
* types.h: New type u64
|
||||
|
||||
Mon Mar 9 12:59:55 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||
|
||||
* cipher.h: Included dsa.h.
|
||||
|
||||
Tue Mar 3 15:11:21 1998 Werner Koch (wk@isil.d.shuttle.de)
|
||||
|
||||
* cipher.h (random.h): Add new header and move all relevalt
|
||||
functions to this header.
|
||||
|
||||
|
||||
Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
|
||||
This file is free software; as a special exception the author gives
|
||||
unlimited permission to copy and/or distribute it, with or without
|
||||
modifications, as long as this notice is preserved.
|
||||
|
||||
This file is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
|
||||
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
|
||||
|
198
include/cipher.h
198
include/cipher.h
|
@ -1,198 +0,0 @@
|
|||
/* cipher.h
|
||||
* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GNUPG.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#ifndef G10_CIPHER_H
|
||||
#define G10_CIPHER_H
|
||||
|
||||
#define DBG_CIPHER g10c_debug_mode
|
||||
|
||||
#include "mpi.h"
|
||||
#include "../cipher/random.h"
|
||||
|
||||
|
||||
#define CIPHER_ALGO_NONE 0
|
||||
#define CIPHER_ALGO_IDEA 1
|
||||
#define CIPHER_ALGO_3DES 2
|
||||
#define CIPHER_ALGO_CAST5 3
|
||||
#define CIPHER_ALGO_BLOWFISH 4 /* blowfish 128 bit key */
|
||||
#define CIPHER_ALGO_SAFER_SK128 5
|
||||
#define CIPHER_ALGO_DES_SK 6
|
||||
#define CIPHER_ALGO_AES 7
|
||||
#define CIPHER_ALGO_AES192 8
|
||||
#define CIPHER_ALGO_AES256 9
|
||||
#define CIPHER_ALGO_RIJNDAEL CIPHER_ALGO_AES
|
||||
#define CIPHER_ALGO_RIJNDAEL192 CIPHER_ALGO_AES192
|
||||
#define CIPHER_ALGO_RIJNDAEL256 CIPHER_ALGO_AES256
|
||||
#define CIPHER_ALGO_TWOFISH 10 /* twofish 256 bit */
|
||||
#define CIPHER_ALGO_SKIPJACK 101 /* experimental: skipjack */
|
||||
#define CIPHER_ALGO_TWOFISH_OLD 102 /* experimental: twofish 128 bit */
|
||||
#define CIPHER_ALGO_DUMMY 110 /* no encryption at all */
|
||||
|
||||
#define PUBKEY_ALGO_RSA 1
|
||||
#define PUBKEY_ALGO_RSA_E 2 /* RSA encrypt only */
|
||||
#define PUBKEY_ALGO_RSA_S 3 /* RSA sign only */
|
||||
#define PUBKEY_ALGO_ELGAMAL_E 16 /* encrypt only ElGamal (but not for v3)*/
|
||||
#define PUBKEY_ALGO_DSA 17
|
||||
#define PUBKEY_ALGO_ELGAMAL 20 /* sign and encrypt elgamal */
|
||||
|
||||
#define PUBKEY_USAGE_SIG 1 /* key is good for signatures */
|
||||
#define PUBKEY_USAGE_ENC 2 /* key is good for encryption */
|
||||
#define PUBKEY_USAGE_CERT 4 /* key is also good to certify other keys*/
|
||||
|
||||
#define DIGEST_ALGO_MD5 1
|
||||
#define DIGEST_ALGO_SHA1 2
|
||||
#define DIGEST_ALGO_RMD160 3
|
||||
#define DIGEST_ALGO_TIGER 6
|
||||
|
||||
#define is_RSA(a) ((a)==PUBKEY_ALGO_RSA || (a)==PUBKEY_ALGO_RSA_E \
|
||||
|| (a)==PUBKEY_ALGO_RSA_S )
|
||||
#define is_ELGAMAL(a) ((a)==PUBKEY_ALGO_ELGAMAL || (a)==PUBKEY_ALGO_ELGAMAL_E)
|
||||
|
||||
typedef struct {
|
||||
int algo;
|
||||
int keylen;
|
||||
int algo_info_printed;
|
||||
int use_mdc;
|
||||
byte key[32]; /* this is the largest used keylen (256 bit) */
|
||||
} DEK;
|
||||
|
||||
struct cipher_handle_s;
|
||||
typedef struct cipher_handle_s *CIPHER_HANDLE;
|
||||
|
||||
|
||||
#define CIPHER_MODE_ECB 1
|
||||
#define CIPHER_MODE_CFB 2
|
||||
#define CIPHER_MODE_PHILS_CFB 3
|
||||
#define CIPHER_MODE_AUTO_CFB 4
|
||||
#define CIPHER_MODE_DUMMY 5 /* used with algo DUMMY for no encryption */
|
||||
#define CIPHER_MODE_CBC 6
|
||||
|
||||
struct md_digest_list_s;
|
||||
|
||||
struct gcry_md_context {
|
||||
int secure;
|
||||
FILE *debug;
|
||||
int finalized;
|
||||
struct md_digest_list_s *list;
|
||||
int bufcount;
|
||||
int bufsize;
|
||||
byte buffer[1];
|
||||
};
|
||||
|
||||
typedef struct gcry_md_context *MD_HANDLE;
|
||||
|
||||
#ifndef EXTERN_UNLESS_MAIN_MODULE
|
||||
#if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
|
||||
#define EXTERN_UNLESS_MAIN_MODULE extern
|
||||
#else
|
||||
#define EXTERN_UNLESS_MAIN_MODULE
|
||||
#endif
|
||||
#endif
|
||||
EXTERN_UNLESS_MAIN_MODULE int g10c_debug_mode;
|
||||
EXTERN_UNLESS_MAIN_MODULE int g10_opt_verbose;
|
||||
EXTERN_UNLESS_MAIN_MODULE const char *g10_opt_homedir;
|
||||
|
||||
|
||||
/*-- dynload.c --*/
|
||||
void register_cipher_extension( const char *mainpgm, const char *fname );
|
||||
|
||||
/*-- md.c --*/
|
||||
int string_to_digest_algo( const char *string );
|
||||
const char * digest_algo_to_string( int algo );
|
||||
int check_digest_algo( int algo );
|
||||
MD_HANDLE md_open( int algo, int secure );
|
||||
void md_enable( MD_HANDLE hd, int algo );
|
||||
MD_HANDLE md_copy( MD_HANDLE a );
|
||||
void md_reset( MD_HANDLE a );
|
||||
void md_close(MD_HANDLE a);
|
||||
void md_write( MD_HANDLE a, const byte *inbuf, size_t inlen);
|
||||
void md_final(MD_HANDLE a);
|
||||
byte *md_read( MD_HANDLE a, int algo );
|
||||
int md_digest( MD_HANDLE a, int algo, byte *buffer, int buflen );
|
||||
int md_get_algo( MD_HANDLE a );
|
||||
int md_algo_present( MD_HANDLE a, int algo );
|
||||
int md_digest_length( int algo );
|
||||
const byte *md_asn_oid( int algo, size_t *asnlen, size_t *mdlen );
|
||||
void md_start_debug( MD_HANDLE a, const char *suffix );
|
||||
void md_stop_debug( MD_HANDLE a );
|
||||
#define md_is_secure(a) ((a)->secure)
|
||||
#define md_putc(h,c) \
|
||||
do { \
|
||||
if( (h)->bufcount == (h)->bufsize ) \
|
||||
md_write( (h), NULL, 0 ); \
|
||||
(h)->buffer[(h)->bufcount++] = (c) & 0xff; \
|
||||
} while(0)
|
||||
|
||||
void rmd160_hash_buffer (char *outbuf, const char *buffer, size_t length);
|
||||
|
||||
|
||||
/*-- cipher.c --*/
|
||||
int string_to_cipher_algo( const char *string );
|
||||
const char * cipher_algo_to_string( int algo );
|
||||
void disable_cipher_algo( int algo );
|
||||
int check_cipher_algo( int algo );
|
||||
unsigned cipher_get_keylen( int algo );
|
||||
unsigned cipher_get_blocksize( int algo );
|
||||
CIPHER_HANDLE cipher_open( int algo, int mode, int secure );
|
||||
void cipher_close( CIPHER_HANDLE c );
|
||||
int cipher_setkey( CIPHER_HANDLE c, byte *key, unsigned keylen );
|
||||
void cipher_setiv( CIPHER_HANDLE c, const byte *iv, unsigned ivlen );
|
||||
void cipher_encrypt( CIPHER_HANDLE c, byte *out, byte *in, unsigned nbytes );
|
||||
void cipher_decrypt( CIPHER_HANDLE c, byte *out, byte *in, unsigned nbytes );
|
||||
void cipher_sync( CIPHER_HANDLE c );
|
||||
|
||||
/*-- pubkey.c --*/
|
||||
#define PUBKEY_MAX_NPKEY 4
|
||||
#define PUBKEY_MAX_NSKEY 6
|
||||
#define PUBKEY_MAX_NSIG 2
|
||||
#define PUBKEY_MAX_NENC 2
|
||||
|
||||
int string_to_pubkey_algo( const char *string );
|
||||
const char * pubkey_algo_to_string( int algo );
|
||||
void disable_pubkey_algo( int algo );
|
||||
int check_pubkey_algo( int algo );
|
||||
int check_pubkey_algo2( int algo, unsigned use );
|
||||
int pubkey_get_npkey( int algo );
|
||||
int pubkey_get_nskey( int algo );
|
||||
int pubkey_get_nsig( int algo );
|
||||
int pubkey_get_nenc( int algo );
|
||||
unsigned pubkey_nbits( int algo, MPI *pkey );
|
||||
int pubkey_generate( int algo, unsigned nbits, MPI *skey, MPI **retfactors );
|
||||
int pubkey_check_secret_key( int algo, MPI *skey );
|
||||
int pubkey_encrypt( int algo, MPI *resarr, MPI data, MPI *pkey );
|
||||
int pubkey_decrypt( int algo, MPI *result, MPI *data, MPI *skey );
|
||||
int pubkey_sign( int algo, MPI *resarr, MPI hash, MPI *skey );
|
||||
int pubkey_verify( int algo, MPI hash, MPI *data, MPI *pkey,
|
||||
int (*cmp)(void *, MPI), void *opaque );
|
||||
|
||||
/*-- smallprime.c --*/
|
||||
extern ushort small_prime_numbers[];
|
||||
|
||||
/*-- primegen.c --*/
|
||||
void register_primegen_progress ( void (*cb)( void *, int), void *cb_data );
|
||||
MPI generate_secret_prime( unsigned nbits );
|
||||
MPI generate_public_prime( unsigned nbits );
|
||||
MPI generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
|
||||
MPI g, MPI **factors );
|
||||
|
||||
/*-- elsewhere --*/
|
||||
void register_pk_dsa_progress ( void (*cb)( void *, int), void *cb_data );
|
||||
void register_pk_elg_progress ( void (*cb)( void *, int), void *cb_data );
|
||||
|
||||
#endif /*G10_CIPHER_H*/
|
|
@ -1,14 +0,0 @@
|
|||
cipher.h
|
||||
errors.h
|
||||
iobuf.h
|
||||
memory.h
|
||||
mpi.h
|
||||
ttyio.h
|
||||
types.h
|
||||
util.h
|
||||
i18n.h
|
||||
host2net.h
|
||||
http.h
|
||||
keyserver.h
|
||||
|
||||
ChangeLog
|
|
@ -1,81 +0,0 @@
|
|||
/* http.h - HTTP protocol handler
|
||||
* Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GnuPG.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#ifndef G10_HTTP_H
|
||||
#define G10_HTTP_H 1
|
||||
|
||||
#include "iobuf.h"
|
||||
|
||||
struct uri_tuple {
|
||||
struct uri_tuple *next;
|
||||
const char *name; /* a pointer into name */
|
||||
char *value; /* a pointer to value (a Nul is always appended) */
|
||||
size_t valuelen; /* and the real length of the value */
|
||||
/* because the value may contain embedded Nuls */
|
||||
};
|
||||
typedef struct uri_tuple *URI_TUPLE;
|
||||
|
||||
struct parsed_uri {
|
||||
/* all these pointers point into buffer; most stuff is not escaped */
|
||||
char *scheme; /* pointer to the scheme string (lowercase) */
|
||||
char *host; /* host (converted to lowercase) */
|
||||
ushort port; /* port (always set if the host is set) */
|
||||
char *path; /* the path */
|
||||
URI_TUPLE params; /* ";xxxxx" */
|
||||
URI_TUPLE query; /* "?xxx=yyy" */
|
||||
char buffer[1]; /* buffer which holds a (modified) copy of the URI */
|
||||
};
|
||||
typedef struct parsed_uri *PARSED_URI;
|
||||
|
||||
typedef enum {
|
||||
HTTP_REQ_GET = 1,
|
||||
HTTP_REQ_HEAD = 2,
|
||||
HTTP_REQ_POST = 3
|
||||
} HTTP_REQ_TYPE;
|
||||
|
||||
enum { /* put flag values into an enum, so that gdb can display them */
|
||||
HTTP_FLAG_TRY_PROXY = 1,
|
||||
HTTP_FLAG_NO_SHUTDOWN = 2
|
||||
};
|
||||
|
||||
struct http_context {
|
||||
int initialized;
|
||||
unsigned int status_code;
|
||||
int sock;
|
||||
int in_data;
|
||||
IOBUF fp_read;
|
||||
IOBUF fp_write;
|
||||
int is_http_0_9;
|
||||
PARSED_URI uri;
|
||||
HTTP_REQ_TYPE req_type;
|
||||
byte *buffer; /* line buffer */
|
||||
unsigned buffer_size;
|
||||
unsigned int flags;
|
||||
};
|
||||
typedef struct http_context *HTTP_HD;
|
||||
|
||||
int http_open( HTTP_HD hd, HTTP_REQ_TYPE reqtype, const char *url,
|
||||
unsigned int flags );
|
||||
void http_start_data( HTTP_HD hd );
|
||||
int http_wait_response( HTTP_HD hd, unsigned int *ret_status );
|
||||
void http_close( HTTP_HD hd );
|
||||
|
||||
int http_open_document( HTTP_HD hd, const char *document, unsigned int flags );
|
||||
|
||||
#endif /*G10_HTTP_H*/
|
|
@ -1,54 +0,0 @@
|
|||
/* i18n.h
|
||||
* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GNUPG.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#ifndef G10_I18N_H
|
||||
#define G10_I18N_H
|
||||
|
||||
#ifdef USE_SIMPLE_GETTEXT
|
||||
int set_gettext_file( const char *filename );
|
||||
const char *gettext( const char *msgid );
|
||||
|
||||
#define _(a) gettext (a)
|
||||
#define N_(a) (a)
|
||||
|
||||
#else
|
||||
#ifdef HAVE_LOCALE_H
|
||||
#include <locale.h> /* suggested by Ernst Molitor */
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_NLS
|
||||
#ifndef __riscos__
|
||||
#include <libintl.h>
|
||||
#else
|
||||
#include "libgettext.h"
|
||||
#endif /* __riscos__ */
|
||||
#define _(a) gettext (a)
|
||||
#ifdef gettext_noop
|
||||
#define N_(a) gettext_noop (a)
|
||||
#else
|
||||
#define N_(a) (a)
|
||||
#endif
|
||||
#else
|
||||
#define _(a) (a)
|
||||
#define N_(a) (a)
|
||||
#endif
|
||||
#endif /* !USE_SIMPLE_GETTEXT */
|
||||
|
||||
#endif /*G10_I18N_H*/
|
161
include/iobuf.h
161
include/iobuf.h
|
@ -1,161 +0,0 @@
|
|||
/* iobuf.h - I/O buffer
|
||||
* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GNUPG.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#ifndef G10_IOBUF_H
|
||||
#define G10_IOBUF_H
|
||||
|
||||
#include "types.h"
|
||||
|
||||
|
||||
#define DBG_IOBUF iobuf_debug_mode
|
||||
|
||||
|
||||
#define IOBUFCTRL_INIT 1
|
||||
#define IOBUFCTRL_FREE 2
|
||||
#define IOBUFCTRL_UNDERFLOW 3
|
||||
#define IOBUFCTRL_FLUSH 4
|
||||
#define IOBUFCTRL_DESC 5
|
||||
#define IOBUFCTRL_CANCEL 6
|
||||
#define IOBUFCTRL_USER 16
|
||||
|
||||
typedef struct iobuf_struct *IOBUF;
|
||||
|
||||
/* fixme: we should hide most of this stuff */
|
||||
struct iobuf_struct {
|
||||
int use; /* 1 input , 2 output, 3 temp */
|
||||
off_t nlimit;
|
||||
off_t nbytes; /* used together with nlimit */
|
||||
off_t ntotal; /* total bytes read (position of stream) */
|
||||
int nofast; /* used by the iobuf_get() */
|
||||
void *directfp;
|
||||
struct {
|
||||
size_t size; /* allocated size */
|
||||
size_t start; /* number of invalid bytes at the begin of the buffer */
|
||||
size_t len; /* currently filled to this size */
|
||||
byte *buf;
|
||||
} d;
|
||||
int filter_eof;
|
||||
int error;
|
||||
int (*filter)( void *opaque, int control,
|
||||
IOBUF chain, byte *buf, size_t *len);
|
||||
void *filter_ov; /* value for opaque */
|
||||
int filter_ov_owner;
|
||||
char *real_fname;
|
||||
IOBUF chain; /* next iobuf used for i/o if any (passed to filter) */
|
||||
int no, subno;
|
||||
const char *desc;
|
||||
void *opaque; /* can be used to hold any information */
|
||||
/* this value is copied to all instances */
|
||||
struct {
|
||||
size_t size; /* allocated size */
|
||||
size_t start; /* number of invalid bytes at the begin of the buffer */
|
||||
size_t len; /* currently filled to this size */
|
||||
byte *buf;
|
||||
} unget;
|
||||
};
|
||||
|
||||
#ifndef EXTERN_UNLESS_MAIN_MODULE
|
||||
#if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
|
||||
#define EXTERN_UNLESS_MAIN_MODULE extern
|
||||
#else
|
||||
#define EXTERN_UNLESS_MAIN_MODULE
|
||||
#endif
|
||||
#endif
|
||||
EXTERN_UNLESS_MAIN_MODULE int iobuf_debug_mode;
|
||||
|
||||
void iobuf_enable_special_filenames ( int yes );
|
||||
IOBUF iobuf_alloc(int use, size_t bufsize);
|
||||
IOBUF iobuf_temp(void);
|
||||
IOBUF iobuf_temp_with_content( const char *buffer, size_t length );
|
||||
IOBUF iobuf_open( const char *fname );
|
||||
IOBUF iobuf_fdopen( int fd, const char *mode );
|
||||
IOBUF iobuf_sockopen( int fd, const char *mode );
|
||||
IOBUF iobuf_create( const char *fname );
|
||||
IOBUF iobuf_append( const char *fname );
|
||||
IOBUF iobuf_openrw( const char *fname );
|
||||
int iobuf_ioctl ( IOBUF a, int cmd, int intval, void *ptrval );
|
||||
int iobuf_close( IOBUF iobuf );
|
||||
int iobuf_cancel( IOBUF iobuf );
|
||||
|
||||
int iobuf_push_filter( IOBUF a, int (*f)(void *opaque, int control,
|
||||
IOBUF chain, byte *buf, size_t *len), void *ov );
|
||||
int iobuf_push_filter2( IOBUF a,
|
||||
int (*f)(void *opaque, int control,
|
||||
IOBUF chain, byte *buf, size_t *len),
|
||||
void *ov, int rel_ov );
|
||||
int iobuf_flush(IOBUF a);
|
||||
void iobuf_clear_eof(IOBUF a);
|
||||
#define iobuf_set_error(a) do { (a)->error = 1; } while(0)
|
||||
#define iobuf_error(a) ((a)->error)
|
||||
|
||||
void iobuf_set_limit( IOBUF a, off_t nlimit );
|
||||
|
||||
off_t iobuf_tell( IOBUF a );
|
||||
int iobuf_seek( IOBUF a, off_t newpos );
|
||||
|
||||
int iobuf_readbyte(IOBUF a);
|
||||
int iobuf_read(IOBUF a, byte *buf, unsigned buflen );
|
||||
unsigned iobuf_read_line( IOBUF a, byte **addr_of_buffer,
|
||||
unsigned *length_of_buffer, unsigned *max_length );
|
||||
int iobuf_peek(IOBUF a, byte *buf, unsigned buflen );
|
||||
int iobuf_writebyte(IOBUF a, unsigned c);
|
||||
int iobuf_write(IOBUF a, byte *buf, unsigned buflen );
|
||||
int iobuf_writestr(IOBUF a, const char *buf );
|
||||
|
||||
void iobuf_flush_temp( IOBUF temp );
|
||||
int iobuf_write_temp( IOBUF a, IOBUF temp );
|
||||
size_t iobuf_temp_to_buffer( IOBUF a, byte *buffer, size_t buflen );
|
||||
void iobuf_unget_and_close_temp( IOBUF a, IOBUF temp );
|
||||
|
||||
off_t iobuf_get_filelength( IOBUF a );
|
||||
#define IOBUF_FILELENGTH_LIMIT 0xffffffff
|
||||
const char *iobuf_get_real_fname( IOBUF a );
|
||||
const char *iobuf_get_fname( IOBUF a );
|
||||
|
||||
void iobuf_set_block_mode( IOBUF a, size_t n );
|
||||
void iobuf_set_partial_block_mode( IOBUF a, size_t len );
|
||||
int iobuf_in_block_mode( IOBUF a );
|
||||
|
||||
int iobuf_translate_file_handle ( int fd, int for_write );
|
||||
|
||||
|
||||
/* get a byte form the iobuf; must check for eof prior to this function
|
||||
* this function returns values in the range 0 .. 255 or -1 to indicate EOF
|
||||
* iobuf_get_noeof() does not return -1 to indicate EOF, but masks the
|
||||
* returned value to be in the range 0 ..255.
|
||||
*/
|
||||
#define iobuf_get(a) \
|
||||
( ((a)->nofast || (a)->d.start >= (a)->d.len )? \
|
||||
iobuf_readbyte((a)) : ( (a)->nbytes++, (a)->d.buf[(a)->d.start++] ) )
|
||||
#define iobuf_get_noeof(a) (iobuf_get((a))&0xff)
|
||||
|
||||
/* write a byte to the iobuf and return true on write error
|
||||
* This macro does only write the low order byte
|
||||
*/
|
||||
#define iobuf_put(a,c) iobuf_writebyte(a,c)
|
||||
|
||||
#define iobuf_where(a) "[don't know]"
|
||||
#define iobuf_id(a) ((a)->no)
|
||||
|
||||
#define iobuf_get_temp_buffer(a) ( (a)->d.buf )
|
||||
#define iobuf_get_temp_length(a) ( (a)->d.len )
|
||||
#define iobuf_is_temp(a) ( (a)->use == 3 )
|
||||
|
||||
#endif /*G10_IOBUF_H*/
|
|
@ -1,95 +0,0 @@
|
|||
/* memory.h - memory allocation
|
||||
* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GNUPG.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#ifndef G10_MEMORY_H
|
||||
#define G10_MEMORY_H
|
||||
|
||||
#ifdef M_DEBUG
|
||||
#ifndef STR
|
||||
#define STR(v) #v
|
||||
#endif
|
||||
#ifndef __riscos__
|
||||
#define M_DBGINFO(a) __FUNCTION__ "["__FILE__ ":" STR(a) "]"
|
||||
#else /* __riscos__ */
|
||||
#define M_DBGINFO(a) "["__FILE__ ":" STR(a) "]"
|
||||
#endif /* __riscos__ */
|
||||
#define m_alloc(n) m_debug_alloc((n), M_DBGINFO( __LINE__ ) )
|
||||
#define m_alloc_clear(n) m_debug_alloc_clear((n), M_DBGINFO(__LINE__) )
|
||||
#define m_alloc_secure(n) m_debug_alloc((n), M_DBGINFO(__LINE__) )
|
||||
#define m_alloc_secure_clear(n) m_debug_alloc_secure_clear((n), M_DBGINFO(__LINE__) )
|
||||
#define m_realloc(n,m) m_debug_realloc((n),(m), M_DBGINFO(__LINE__) )
|
||||
#define m_free(n) m_debug_free((n), M_DBGINFO(__LINE__) )
|
||||
#define m_check(n) m_debug_check((n), M_DBGINFO(__LINE__) )
|
||||
/*#define m_copy(a) m_debug_copy((a), M_DBGINFO(__LINE__) )*/
|
||||
#define m_strdup(a) m_debug_strdup((a), M_DBGINFO(__LINE__) )
|
||||
|
||||
void *m_debug_alloc( size_t n, const char *info );
|
||||
void *m_debug_alloc_clear( size_t n, const char *info );
|
||||
void *m_debug_alloc_secure( size_t n, const char *info );
|
||||
void *m_debug_alloc_secure_clear( size_t n, const char *info );
|
||||
void *m_debug_realloc( void *a, size_t n, const char *info );
|
||||
void m_debug_free( void *p, const char *info );
|
||||
void m_debug_check( const void *a, const char *info );
|
||||
/*void *m_debug_copy( const void *a, const char *info );*/
|
||||
char *m_debug_strdup( const char *a, const char *info );
|
||||
|
||||
#else
|
||||
void *m_alloc( size_t n );
|
||||
void *m_alloc_clear( size_t n );
|
||||
void *m_alloc_secure( size_t n );
|
||||
void *m_alloc_secure_clear( size_t n );
|
||||
void *m_realloc( void *a, size_t n );
|
||||
void m_free( void *p );
|
||||
void m_check( const void *a );
|
||||
/*void *m_copy( const void *a );*/
|
||||
char *m_strdup( const char * a);
|
||||
#endif
|
||||
|
||||
size_t m_size( const void *a );
|
||||
void m_print_stats(const char *prefix);
|
||||
|
||||
/*-- secmem.c --*/
|
||||
void secmem_init( size_t npool );
|
||||
void secmem_term( void );
|
||||
void *secmem_malloc( size_t size );
|
||||
void *secmem_realloc( void *a, size_t newsize );
|
||||
void secmem_free( void *a );
|
||||
int m_is_secure( const void *p );
|
||||
void secmem_dump_stats(void);
|
||||
void secmem_set_flags( unsigned flags );
|
||||
unsigned secmem_get_flags(void);
|
||||
|
||||
|
||||
|
||||
#define DBG_MEMORY memory_debug_mode
|
||||
#define DBG_MEMSTAT memory_stat_debug_mode
|
||||
|
||||
#ifndef EXTERN_UNLESS_MAIN_MODULE
|
||||
#if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
|
||||
#define EXTERN_UNLESS_MAIN_MODULE extern
|
||||
#else
|
||||
#define EXTERN_UNLESS_MAIN_MODULE
|
||||
#endif
|
||||
#endif
|
||||
EXTERN_UNLESS_MAIN_MODULE int memory_debug_mode;
|
||||
EXTERN_UNLESS_MAIN_MODULE int memory_stat_debug_mode;
|
||||
|
||||
|
||||
#endif /*G10_MEMORY_H*/
|
197
include/mpi.h
197
include/mpi.h
|
@ -1,197 +0,0 @@
|
|||
/* mpi.h - Multi Precision Integers
|
||||
* Copyright (C) 1994, 1996, 1998, 1999,
|
||||
* 2000, 2001 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GNUPG.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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
|
||||
*
|
||||
* Note: This code is heavily based on the GNU MP Library.
|
||||
* Actually it's the same code with only minor changes in the
|
||||
* way the data is stored; this is to support the abstraction
|
||||
* of an optional secure memory allocation which may be used
|
||||
* to avoid revealing of sensitive data due to paging etc.
|
||||
* The GNU MP Library itself is published under the LGPL;
|
||||
* however I decided to publish this code under the plain GPL.
|
||||
*/
|
||||
|
||||
#ifndef G10_MPI_H
|
||||
#define G10_MPI_H
|
||||
|
||||
#include <config.h>
|
||||
#include <stdio.h>
|
||||
#include "iobuf.h"
|
||||
#include "types.h"
|
||||
#include "memory.h"
|
||||
|
||||
#if BYTES_PER_MPI_LIMB == SIZEOF_UNSIGNED_INT
|
||||
typedef unsigned int mpi_limb_t;
|
||||
typedef signed int mpi_limb_signed_t;
|
||||
#elif BYTES_PER_MPI_LIMB == SIZEOF_UNSIGNED_LONG
|
||||
typedef unsigned long int mpi_limb_t;
|
||||
typedef signed long int mpi_limb_signed_t;
|
||||
#elif BYTES_PER_MPI_LIMB == SIZEOF_UNSIGNED_LONG_LONG
|
||||
typedef unsigned long long int mpi_limb_t;
|
||||
typedef signed long long int mpi_limb_signed_t;
|
||||
#elif BYTES_PER_MPI_LIMB == SIZEOF_UNSIGNED_SHORT
|
||||
typedef unsigned short int mpi_limb_t;
|
||||
typedef signed short int mpi_limb_signed_t;
|
||||
#else
|
||||
#error BYTES_PER_MPI_LIMB does not match any C type
|
||||
#endif
|
||||
#define BITS_PER_MPI_LIMB (8*BYTES_PER_MPI_LIMB)
|
||||
|
||||
#ifndef EXTERN_UNLESS_MAIN_MODULE
|
||||
#if defined (__riscos__) && !defined (INCLUDED_BY_MAIN_MODULE)
|
||||
#define EXTERN_UNLESS_MAIN_MODULE extern
|
||||
#else
|
||||
#define EXTERN_UNLESS_MAIN_MODULE
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define DBG_MPI mpi_debug_mode
|
||||
EXTERN_UNLESS_MAIN_MODULE int mpi_debug_mode;
|
||||
|
||||
|
||||
struct gcry_mpi {
|
||||
int alloced; /* array size (# of allocated limbs) */
|
||||
int nlimbs; /* number of valid limbs */
|
||||
int nbits; /* the real number of valid bits (info only) */
|
||||
int sign; /* indicates a negative number */
|
||||
unsigned flags; /* bit 0: array must be allocated in secure memory space */
|
||||
/* bit 1: not used */
|
||||
/* bit 2: the limb is a pointer to some m_alloced data */
|
||||
mpi_limb_t *d; /* array with the limbs */
|
||||
};
|
||||
|
||||
typedef struct gcry_mpi *MPI;
|
||||
|
||||
#define MPI_NULL NULL
|
||||
|
||||
#define mpi_get_nlimbs(a) ((a)->nlimbs)
|
||||
#define mpi_is_neg(a) ((a)->sign)
|
||||
|
||||
/*-- mpiutil.c --*/
|
||||
|
||||
#ifdef M_DEBUG
|
||||
#define mpi_alloc(n) mpi_debug_alloc((n), M_DBGINFO( __LINE__ ) )
|
||||
#define mpi_alloc_secure(n) mpi_debug_alloc_secure((n), M_DBGINFO( __LINE__ ) )
|
||||
#define mpi_alloc_like(n) mpi_debug_alloc_like((n), M_DBGINFO( __LINE__ ) )
|
||||
#define mpi_free(a) mpi_debug_free((a), M_DBGINFO(__LINE__) )
|
||||
#define mpi_resize(a,b) mpi_debug_resize((a),(b), M_DBGINFO(__LINE__) )
|
||||
#define mpi_copy(a) mpi_debug_copy((a), M_DBGINFO(__LINE__) )
|
||||
MPI mpi_debug_alloc( unsigned nlimbs, const char *info );
|
||||
MPI mpi_debug_alloc_secure( unsigned nlimbs, const char *info );
|
||||
MPI mpi_debug_alloc_like( MPI a, const char *info );
|
||||
void mpi_debug_free( MPI a, const char *info );
|
||||
void mpi_debug_resize( MPI a, unsigned nlimbs, const char *info );
|
||||
MPI mpi_debug_copy( MPI a, const char *info );
|
||||
#else
|
||||
MPI mpi_alloc( unsigned nlimbs );
|
||||
MPI mpi_alloc_secure( unsigned nlimbs );
|
||||
MPI mpi_alloc_like( MPI a );
|
||||
void mpi_free( MPI a );
|
||||
void mpi_resize( MPI a, unsigned nlimbs );
|
||||
MPI mpi_copy( MPI a );
|
||||
#endif
|
||||
#define mpi_is_opaque(a) ((a) && ((a)->flags&4))
|
||||
MPI mpi_set_opaque( MPI a, void *p, int len );
|
||||
void *mpi_get_opaque( MPI a, int *len );
|
||||
#define mpi_is_secure(a) ((a) && ((a)->flags&1))
|
||||
void mpi_set_secure( MPI a );
|
||||
void mpi_clear( MPI a );
|
||||
void mpi_set( MPI w, MPI u);
|
||||
void mpi_set_ui( MPI w, ulong u);
|
||||
MPI mpi_alloc_set_ui( unsigned long u);
|
||||
void mpi_m_check( MPI a );
|
||||
void mpi_swap( MPI a, MPI b);
|
||||
|
||||
/*-- mpicoder.c --*/
|
||||
int mpi_write( IOBUF out, MPI a );
|
||||
#ifdef M_DEBUG
|
||||
#define mpi_read(a,b,c) mpi_debug_read((a),(b),(c), M_DBGINFO( __LINE__ ) )
|
||||
MPI mpi_debug_read(IOBUF inp, unsigned *nread, int secure, const char *info);
|
||||
#else
|
||||
MPI mpi_read(IOBUF inp, unsigned *nread, int secure);
|
||||
#endif
|
||||
MPI mpi_read_from_buffer(byte *buffer, unsigned *ret_nread, int secure);
|
||||
int mpi_fromstr(MPI val, const char *str);
|
||||
int mpi_print( FILE *fp, MPI a, int mode );
|
||||
void g10_log_mpidump( const char *text, MPI a );
|
||||
u32 mpi_get_keyid( MPI a, u32 *keyid );
|
||||
byte *mpi_get_buffer( MPI a, unsigned *nbytes, int *sign );
|
||||
byte *mpi_get_secure_buffer( MPI a, unsigned *nbytes, int *sign );
|
||||
void mpi_set_buffer( MPI a, const byte *buffer, unsigned nbytes, int sign );
|
||||
|
||||
#define log_mpidump g10_log_mpidump
|
||||
|
||||
/*-- mpi-add.c --*/
|
||||
void mpi_add_ui(MPI w, MPI u, ulong v );
|
||||
void mpi_add(MPI w, MPI u, MPI v);
|
||||
void mpi_addm(MPI w, MPI u, MPI v, MPI m);
|
||||
void mpi_sub_ui(MPI w, MPI u, ulong v );
|
||||
void mpi_sub( MPI w, MPI u, MPI v);
|
||||
void mpi_subm( MPI w, MPI u, MPI v, MPI m);
|
||||
|
||||
/*-- mpi-mul.c --*/
|
||||
void mpi_mul_ui(MPI w, MPI u, ulong v );
|
||||
void mpi_mul_2exp( MPI w, MPI u, ulong cnt);
|
||||
void mpi_mul( MPI w, MPI u, MPI v);
|
||||
void mpi_mulm( MPI w, MPI u, MPI v, MPI m);
|
||||
|
||||
/*-- mpi-div.c --*/
|
||||
ulong mpi_fdiv_r_ui( MPI rem, MPI dividend, ulong divisor );
|
||||
void mpi_fdiv_r( MPI rem, MPI dividend, MPI divisor );
|
||||
void mpi_fdiv_q( MPI quot, MPI dividend, MPI divisor );
|
||||
void mpi_fdiv_qr( MPI quot, MPI rem, MPI dividend, MPI divisor );
|
||||
void mpi_tdiv_r( MPI rem, MPI num, MPI den);
|
||||
void mpi_tdiv_qr( MPI quot, MPI rem, MPI num, MPI den);
|
||||
void mpi_tdiv_q_2exp( MPI w, MPI u, unsigned count );
|
||||
int mpi_divisible_ui(MPI dividend, ulong divisor );
|
||||
|
||||
/*-- mpi-gcd.c --*/
|
||||
int mpi_gcd( MPI g, MPI a, MPI b );
|
||||
|
||||
/*-- mpi-pow.c --*/
|
||||
void mpi_pow( MPI w, MPI u, MPI v);
|
||||
void mpi_powm( MPI res, MPI base, MPI exp, MPI mod);
|
||||
|
||||
/*-- mpi-mpow.c --*/
|
||||
void mpi_mulpowm( MPI res, MPI *basearray, MPI *exparray, MPI mod);
|
||||
|
||||
/*-- mpi-cmp.c --*/
|
||||
int mpi_cmp_ui( MPI u, ulong v );
|
||||
int mpi_cmp( MPI u, MPI v );
|
||||
|
||||
/*-- mpi-scan.c --*/
|
||||
int mpi_getbyte( MPI a, unsigned idx );
|
||||
void mpi_putbyte( MPI a, unsigned idx, int value );
|
||||
unsigned mpi_trailing_zeros( MPI a );
|
||||
|
||||
/*-- mpi-bit.c --*/
|
||||
void mpi_normalize( MPI a );
|
||||
unsigned mpi_get_nbits( MPI a );
|
||||
int mpi_test_bit( MPI a, unsigned n );
|
||||
void mpi_set_bit( MPI a, unsigned n );
|
||||
void mpi_set_highbit( MPI a, unsigned n );
|
||||
void mpi_clear_highbit( MPI a, unsigned n );
|
||||
void mpi_clear_bit( MPI a, unsigned n );
|
||||
void mpi_rshift( MPI x, MPI a, unsigned n );
|
||||
|
||||
/*-- mpi-inv.c --*/
|
||||
void mpi_invm( MPI x, MPI u, MPI v );
|
||||
|
||||
|
||||
#endif /*G10_MPI_H*/
|
|
@ -1,39 +0,0 @@
|
|||
/* ttyio.h
|
||||
* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GNUPG.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#ifndef G10_TTYIO_H
|
||||
#define G10_TTYIO_H
|
||||
|
||||
int tty_batchmode( int onoff );
|
||||
#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5 )
|
||||
void tty_printf (const char *fmt, ... ) __attribute__ ((format (printf,1,2)));
|
||||
#else
|
||||
void tty_printf (const char *fmt, ... );
|
||||
#endif
|
||||
void tty_print_string( byte *p, size_t n );
|
||||
void tty_print_utf8_string( byte *p, size_t n );
|
||||
void tty_print_utf8_string2( byte *p, size_t n, size_t max_n );
|
||||
char *tty_get( const char *prompt );
|
||||
char *tty_get_hidden( const char *prompt );
|
||||
void tty_kill_prompt(void);
|
||||
int tty_get_answer_is_yes( const char *prompt );
|
||||
int tty_no_terminal(int onoff);
|
||||
|
||||
|
||||
#endif /*G10_TTYIO_H*/
|
131
include/types.h
131
include/types.h
|
@ -1,131 +0,0 @@
|
|||
/* types.h - some common typedefs
|
||||
* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GNUPG.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#ifndef G10_TYPES_H
|
||||
#define G10_TYPES_H
|
||||
|
||||
|
||||
/* The AC_CHECK_SIZEOF() in configure fails for some machines.
|
||||
* we provide some fallback values here */
|
||||
#if !SIZEOF_UNSIGNED_SHORT
|
||||
#undef SIZEOF_UNSIGNED_SHORT
|
||||
#define SIZEOF_UNSIGNED_SHORT 2
|
||||
#endif
|
||||
#if !SIZEOF_UNSIGNED_INT
|
||||
#undef SIZEOF_UNSIGNED_INT
|
||||
#define SIZEOF_UNSIGNED_INT 4
|
||||
#endif
|
||||
#if !SIZEOF_UNSIGNED_LONG
|
||||
#undef SIZEOF_UNSIGNED_LONG
|
||||
#define SIZEOF_UNSIGNED_LONG 4
|
||||
#endif
|
||||
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
|
||||
#ifndef HAVE_BYTE_TYPEDEF
|
||||
#undef byte /* maybe there is a macro with this name */
|
||||
#ifndef __riscos__
|
||||
typedef unsigned char byte;
|
||||
#else
|
||||
/* Norcroft treats char = unsigned char as legal assignment
|
||||
but char* = unsigned char* as illegal assignment
|
||||
and the same applies to the signed variants as well */
|
||||
typedef char byte;
|
||||
#endif
|
||||
#define HAVE_BYTE_TYPEDEF
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_USHORT_TYPEDEF
|
||||
#undef ushort /* maybe there is a macro with this name */
|
||||
typedef unsigned short ushort;
|
||||
#define HAVE_USHORT_TYPEDEF
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_ULONG_TYPEDEF
|
||||
#undef ulong /* maybe there is a macro with this name */
|
||||
typedef unsigned long ulong;
|
||||
#define HAVE_ULONG_TYPEDEF
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_U16_TYPEDEF
|
||||
#undef u16 /* maybe there is a macro with this name */
|
||||
#if SIZEOF_UNSIGNED_INT == 2
|
||||
typedef unsigned int u16;
|
||||
#elif SIZEOF_UNSIGNED_SHORT == 2
|
||||
typedef unsigned short u16;
|
||||
#else
|
||||
#error no typedef for u16
|
||||
#endif
|
||||
#define HAVE_U16_TYPEDEF
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_U32_TYPEDEF
|
||||
#undef u32 /* maybe there is a macro with this name */
|
||||
#if SIZEOF_UNSIGNED_INT == 4
|
||||
typedef unsigned int u32;
|
||||
#elif SIZEOF_UNSIGNED_LONG == 4
|
||||
typedef unsigned long u32;
|
||||
#else
|
||||
#error no typedef for u32
|
||||
#endif
|
||||
#define HAVE_U32_TYPEDEF
|
||||
#endif
|
||||
|
||||
/****************
|
||||
* Warning: Some systems segfault when this u64 typedef and
|
||||
* the dummy code in cipher/md.c is not available. Examples are
|
||||
* Solaris and IRIX.
|
||||
*/
|
||||
#ifndef HAVE_U64_TYPEDEF
|
||||
#undef u64 /* maybe there is a macro with this name */
|
||||
#if SIZEOF_UNSIGNED_INT == 8
|
||||
typedef unsigned int u64;
|
||||
#define HAVE_U64_TYPEDEF
|
||||
#elif SIZEOF_UNSIGNED_LONG == 8
|
||||
typedef unsigned long u64;
|
||||
#define HAVE_U64_TYPEDEF
|
||||
#elif SIZEOF_UNSIGNED_LONG_LONG == 8
|
||||
typedef unsigned long long u64;
|
||||
#define HAVE_U64_TYPEDEF
|
||||
#endif
|
||||
#endif
|
||||
|
||||
typedef union {
|
||||
int a;
|
||||
short b;
|
||||
char c[1];
|
||||
long d;
|
||||
#ifdef HAVE_U64_TYPEDEF
|
||||
u64 e;
|
||||
#endif
|
||||
float f;
|
||||
double g;
|
||||
} PROPERLY_ALIGNED_TYPE;
|
||||
|
||||
typedef struct string_list {
|
||||
struct string_list *next;
|
||||
unsigned int flags;
|
||||
char d[1];
|
||||
} *STRLIST;
|
||||
|
||||
|
||||
#endif /*G10_TYPES_H*/
|
296
include/util.h
296
include/util.h
|
@ -1,296 +0,0 @@
|
|||
/* util.h
|
||||
* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
|
||||
*
|
||||
* This file is part of GNUPG.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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.
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#ifndef G10_UTIL_H
|
||||
#define G10_UTIL_H
|
||||
|
||||
#if defined (__MINGW32__) || defined (__CYGWIN32__)
|
||||
# include <stdarg.h>
|
||||
#endif
|
||||
|
||||
#include "types.h"
|
||||
#include "errors.h"
|
||||
#include "types.h"
|
||||
#include "mpi.h"
|
||||
|
||||
|
||||
typedef struct {
|
||||
int *argc; /* pointer to argc (value subject to change) */
|
||||
char ***argv; /* pointer to argv (value subject to change) */
|
||||
unsigned flags; /* Global flags (DO NOT CHANGE) */
|
||||
int err; /* print error about last option */
|
||||
/* 1 = warning, 2 = abort */
|
||||
int r_opt; /* return option */
|
||||
int r_type; /* type of return value (0 = no argument found)*/
|
||||
union {
|
||||
int ret_int;
|
||||
long ret_long;
|
||||
ulong ret_ulong;
|
||||
char *ret_str;
|
||||
} r; /* Return values */
|
||||
struct {
|
||||
int idx;
|
||||
int inarg;
|
||||
int stopped;
|
||||
const char *last;
|
||||
void *aliases;
|
||||
const void *cur_alias;
|
||||
} internal; /* DO NOT CHANGE */
|
||||
} ARGPARSE_ARGS;
|
||||
|
||||
typedef struct {
|
||||
int short_opt;
|
||||
const char *long_opt;
|
||||
unsigned flags;
|
||||
const char *description; /* optional option description */
|
||||
} ARGPARSE_OPTS;
|
||||
|
||||
/*-- logger.c --*/
|
||||
void log_set_logfile( const char *name, int fd );
|
||||
FILE *log_stream(void);
|
||||
void g10_log_print_prefix(const char *text);
|
||||
void log_set_name( const char *name );
|
||||
const char *log_get_name(void);
|
||||
void log_set_pid( int pid );
|
||||
int log_get_errorcount( int clear );
|
||||
void log_inc_errorcount(void);
|
||||
int log_set_strict(int val);
|
||||
void g10_log_hexdump( const char *text, const char *buf, size_t len );
|
||||
|
||||
#if defined (__riscos__) \
|
||||
|| (__GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 5 ))
|
||||
void g10_log_bug( const char *fmt, ... )
|
||||
__attribute__ ((noreturn, format (printf,1,2)));
|
||||
void g10_log_bug0( const char *, int, const char * ) __attribute__ ((noreturn));
|
||||
void g10_log_fatal( const char *fmt, ... )
|
||||
__attribute__ ((noreturn, format (printf,1,2)));
|
||||
void g10_log_error( const char *fmt, ... ) __attribute__ ((format (printf,1,2)));
|
||||
void g10_log_info( const char *fmt, ... ) __attribute__ ((format (printf,1,2)));
|
||||
void g10_log_warning( const char *fmt, ... ) __attribute__ ((format (printf,1,2)));
|
||||
void g10_log_debug( const char *fmt, ... ) __attribute__ ((format (printf,1,2)));
|
||||
void g10_log_fatal_f( const char *fname, const char *fmt, ... )
|
||||
__attribute__ ((noreturn, format (printf,2,3)));
|
||||
void g10_log_error_f( const char *fname, const char *fmt, ... )
|
||||
__attribute__ ((format (printf,2,3)));
|
||||
void g10_log_info_f( const char *fname, const char *fmt, ... )
|
||||
__attribute__ ((format (printf,2,3)));
|
||||
void g10_log_debug_f( const char *fname, const char *fmt, ... )
|
||||
__attribute__ ((format (printf,2,3)));
|
||||
#ifndef __riscos__
|
||||
#define BUG() g10_log_bug0( __FILE__ , __LINE__, __FUNCTION__ )
|
||||
#else
|
||||
#define BUG() g10_log_bug0( __FILE__ , __LINE__, __func__ )
|
||||
#endif
|
||||
#else
|
||||
void g10_log_bug( const char *fmt, ... );
|
||||
void g10_log_bug0( const char *, int );
|
||||
void g10_log_fatal( const char *fmt, ... );
|
||||
void g10_log_error( const char *fmt, ... );
|
||||
void g10_log_info( const char *fmt, ... );
|
||||
void g10_log_warning( const char *fmt, ... );
|
||||
void g10_log_debug( const char *fmt, ... );
|
||||
void g10_log_fatal_f( const char *fname, const char *fmt, ... );
|
||||
void g10_log_error_f( const char *fname, const char *fmt, ... );
|
||||
void g10_log_info_f( const char *fname, const char *fmt, ... );
|
||||
void g10_log_debug_f( const char *fname, const char *fmt, ... );
|
||||
#define BUG() g10_log_bug0( __FILE__ , __LINE__ )
|
||||
#endif
|
||||
|
||||
#define log_hexdump g10_log_hexdump
|
||||
#define log_bug g10_log_bug
|
||||
#define log_bug0 g10_log_bug0
|
||||
#define log_fatal g10_log_fatal
|
||||
#define log_error g10_log_error
|
||||
#define log_info g10_log_info
|
||||
#define log_warning g10_log_warning
|
||||
#define log_debug g10_log_debug
|
||||
#define log_fatal_f g10_log_fatal_f
|
||||
#define log_error_f g10_log_error_f
|
||||
#define log_info_f g10_log_info_f
|
||||
#define log_debug_f g10_log_debug_f
|
||||
|
||||
|
||||
/*-- errors.c --*/
|
||||
const char * g10_errstr( int no );
|
||||
|
||||
/*-- argparse.c --*/
|
||||
int arg_parse( ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts);
|
||||
int optfile_parse( FILE *fp, const char *filename, unsigned *lineno,
|
||||
ARGPARSE_ARGS *arg, ARGPARSE_OPTS *opts);
|
||||
void usage( int level );
|
||||
const char *default_strusage( int level );
|
||||
|
||||
|
||||
/*-- (main program) --*/
|
||||
const char *strusage( int level );
|
||||
|
||||
|
||||
/*-- dotlock.c --*/
|
||||
struct dotlock_handle;
|
||||
typedef struct dotlock_handle *DOTLOCK;
|
||||
|
||||
void disable_dotlock(void);
|
||||
DOTLOCK create_dotlock( const char *file_to_lock );
|
||||
int make_dotlock( DOTLOCK h, long timeout );
|
||||
int release_dotlock( DOTLOCK h );
|
||||
void remove_lockfiles (void);
|
||||
|
||||
/*-- fileutil.c --*/
|
||||
char * make_basename(const char *filepath);
|
||||
char * make_dirname(const char *filepath);
|
||||
char *make_filename( const char *first_part, ... );
|
||||
int compare_filenames( const char *a, const char *b );
|
||||
const char *print_fname_stdin( const char *s );
|
||||
const char *print_fname_stdout( const char *s );
|
||||
int is_file_compressed(const char *s, int *r_status);
|
||||
|
||||
|
||||
/*-- miscutil.c --*/
|
||||
u32 make_timestamp(void);
|
||||
u32 scan_isodatestr( const char *string );
|
||||
u32 add_days_to_timestamp( u32 stamp, u16 days );
|
||||
const char *strtimevalue( u32 stamp );
|
||||
const char *strtimestamp( u32 stamp ); /* GMT */
|
||||
const char *asctimestamp( u32 stamp ); /* localized */
|
||||
void print_string( FILE *fp, const byte *p, size_t n, int delim );
|
||||
void print_utf8_string( FILE *fp, const byte *p, size_t n );
|
||||
void print_utf8_string2( FILE *fp, const byte *p, size_t n, int delim);
|
||||
char *make_printable_string( const byte *p, size_t n, int delim );
|
||||
int answer_is_yes_no_default( const char *s, int def_answer );
|
||||
int answer_is_yes( const char *s );
|
||||
int answer_is_yes_no_quit( const char *s );
|
||||
|
||||
/*-- strgutil.c --*/
|
||||
void free_strlist( STRLIST sl );
|
||||
#define FREE_STRLIST(a) do { free_strlist((a)); (a) = NULL ; } while(0)
|
||||
STRLIST add_to_strlist( STRLIST *list, const char *string );
|
||||
STRLIST add_to_strlist2( STRLIST *list, const char *string, int is_utf8 );
|
||||
STRLIST append_to_strlist( STRLIST *list, const char *string );
|
||||
STRLIST append_to_strlist2( STRLIST *list, const char *string, int is_utf8 );
|
||||
STRLIST strlist_prev( STRLIST head, STRLIST node );
|
||||
STRLIST strlist_last( STRLIST node );
|
||||
char *pop_strlist( STRLIST *list );
|
||||
const char *memistr( const char *buf, size_t buflen, const char *sub );
|
||||
const char *ascii_memistr( const char *buf, size_t buflen, const char *sub );
|
||||
char *mem2str( char *, const void *, size_t);
|
||||
char *trim_spaces( char *string );
|
||||
unsigned int trim_trailing_chars( byte *line, unsigned int len,
|
||||
const char *trimchars);
|
||||
unsigned int trim_trailing_ws( byte *line, unsigned len );
|
||||
unsigned int check_trailing_chars( const byte *line, unsigned int len,
|
||||
const char *trimchars );
|
||||
unsigned int check_trailing_ws( const byte *line, unsigned int len );
|
||||
int string_count_chr( const char *string, int c );
|
||||
int set_native_charset( const char *newset );
|
||||
const char* get_native_charset(void);
|
||||
char *native_to_utf8( const char *string );
|
||||
char *utf8_to_native( const char *string, size_t length, int delim);
|
||||
int check_utf8_string( const char *string );
|
||||
|
||||
int ascii_isupper (int c);
|
||||
int ascii_islower (int c);
|
||||
int ascii_toupper (int c);
|
||||
int ascii_tolower (int c);
|
||||
int ascii_strcasecmp( const char *a, const char *b );
|
||||
int ascii_strncasecmp( const char *a, const char *b, size_t n);
|
||||
int ascii_memcasecmp( const char *a, const char *b, size_t n);
|
||||
|
||||
#ifndef HAVE_STPCPY
|
||||
char *stpcpy(char *a,const char *b);
|
||||
#endif
|
||||
#ifndef HAVE_STRLWR
|
||||
char *strlwr(char *a);
|
||||
#endif
|
||||
#ifndef HAVE_STRSEP
|
||||
char *strsep (char **stringp, const char *delim);
|
||||
#endif
|
||||
#ifndef HAVE_STRCASECMP
|
||||
int strcasecmp( const char *, const char *b);
|
||||
#endif
|
||||
#ifndef HAVE_STRNCASECMP
|
||||
int strncasecmp (const char *, const char *b, size_t n);
|
||||
#endif
|
||||
#ifndef HAVE_STRTOUL
|
||||
#define strtoul(a,b,c) ((unsigned long)strtol((a),(b),(c)))
|
||||
#endif
|
||||
#ifndef HAVE_MEMMOVE
|
||||
#define memmove(d, s, n) bcopy((s), (d), (n))
|
||||
#endif
|
||||
|
||||
#if defined (__MINGW32__) || defined (__CYGWIN32__)
|
||||
/*-- w32reg.c --*/
|
||||
char *read_w32_registry_string( const char *root,
|
||||
const char *dir, const char *name );
|
||||
int write_w32_registry_string(const char *root, const char *dir,
|
||||
const char *name, const char *value);
|
||||
|
||||
/*-- strgutil.c --*/
|
||||
int vasprintf ( char **result, const char *format, va_list args);
|
||||
#endif
|
||||
|
||||
/**** other missing stuff ****/
|
||||
#ifndef HAVE_ATEXIT /* For SunOS */
|
||||
#define atexit(a) (on_exit((a),0))
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_RAISE
|
||||
#define raise(a) kill(getpid(), (a))
|
||||
#endif
|
||||
|
||||
/******** some macros ************/
|
||||
#ifndef STR
|
||||
#define STR(v) #v
|
||||
#endif
|
||||
#define STR2(v) STR(v)
|
||||
#define DIM(v) (sizeof(v)/sizeof((v)[0]))
|
||||
#define DIMof(type,member) DIM(((type *)0)->member)
|
||||
|
||||
/******* RISC OS stuff ***********/
|
||||
#ifdef __riscos__
|
||||
/* needed for strcasecmp() */
|
||||
#include <strings.h>
|
||||
/* needed for filename munging */
|
||||
#include <unixlib/local.h>
|
||||
/* needed for image file system feature */
|
||||
#include <unixlib/features.h>
|
||||
void riscos_global_defaults(void);
|
||||
#define RISCOS_GLOBAL_STATICS(a) const char *__dynamic_da_name = (a);
|
||||
void riscos_set_filetype(const char *filename, const char *mimetype);
|
||||
pid_t riscos_getpid(void);
|
||||
int riscos_kill(pid_t pid, int sig);
|
||||
int riscos_access(const char *path, int amode);
|
||||
int riscos_getchar(void);
|
||||
int fdopenfile(const char *filename, const int allow_write);
|
||||
void close_fds(void);
|
||||
int renamefile(const char *old, const char *new);
|
||||
char *gstrans(const char *old);
|
||||
void not_implemented(const char *feature);
|
||||
#ifdef DEBUG
|
||||
void dump_fdlist(void);
|
||||
void list_openfiles(void);
|
||||
#endif
|
||||
#ifndef __RISCOS__C__
|
||||
#define getpid riscos_getpid
|
||||
#define kill(a,b) riscos_kill((a),(b))
|
||||
#define access(a,b) riscos_access((a),(b))
|
||||
#endif /* !__RISCOS__C__ */
|
||||
#endif /* __riscos__ */
|
||||
|
||||
#endif /*G10_UTIL_H*/
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue