* misc.c (_gcry_log_printf): New.
[libgcrypt.git] / src / g10lib.h
1 /* g10lib.h -  internal defintions for libgcrypt
2  *      Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
3  *
4  * This header is to be used inside of libgcrypt in place of gcrypt.h.
5  * This way we can better distinguish between internal and external
6  * usage of gcrypt.h
7  *
8  * This file is part of Libgcrypt.
9  *
10  * Libgcrypt is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * Libgcrypt is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
23  */
24
25 #ifndef G10LIB_H
26 #define G10LIB_H 1
27
28 #ifdef _GCRYPT_H
29   #error  gcrypt.h already included
30 #endif
31
32 #ifndef _GCRYPT_IN_LIBGCRYPT 
33   #error something is wrong with config.h
34 #endif
35
36 #include <gcrypt.h>
37 #include "types.h"
38 #include "../jnlib/mischelp.h"
39
40 #ifdef G10_I18N_H
41   #error i18n should not be included here
42 #endif
43
44 #define _(a)  _gcry_gettext(a)
45 #define N_(a) (a)
46
47 /*-- gcrypt/global.c --*/
48 #define set_lasterr(a) _gcry_set_lasterr ((a))
49 int _gcry_set_lasterr( int ec );
50
51 void  _gcry_check_heap( const void *a );
52
53 int _gcry_get_debug_flag( unsigned int mask );
54
55
56 /*-- gcrypt/misc.c --*/
57
58 #ifdef JNLIB_GCC_M_FUNCTION
59 void _gcry_bug( const char *file, int line, const char *func ) JNLIB_GCC_A_NR;
60 #else
61 void _gcry_bug( const char *file, int line );
62 #endif
63
64 const char *_gcry_gettext( const char *key );
65 void _gcry_fatal_error(int rc, const char *text ) JNLIB_GCC_A_NR;
66 void _gcry_log( int level, const char *fmt, ... ) JNLIB_GCC_A_PRINTF(2,3);
67 void _gcry_log_bug( const char *fmt, ... )   JNLIB_GCC_A_NR_PRINTF(1,2);
68 void _gcry_log_fatal( const char *fmt, ... ) JNLIB_GCC_A_NR_PRINTF(1,2);
69 void _gcry_log_error( const char *fmt, ... ) JNLIB_GCC_A_PRINTF(1,2);
70 void _gcry_log_info( const char *fmt, ... )  JNLIB_GCC_A_PRINTF(1,2);
71 void _gcry_log_debug( const char *fmt, ... ) JNLIB_GCC_A_PRINTF(1,2);
72 void _gcry_log_printf ( const char *fmt, ... ) JNLIB_GCC_A_PRINTF(1,2);
73
74 void _gcry_set_log_verbosity( int level );
75 int _gcry_log_verbosity( int level );
76
77 #ifdef JNLIB_GCC_M_FUNCTION
78   #define BUG() _gcry_bug( __FILE__ , __LINE__, __FUNCTION__ )
79 #else
80   #define BUG() _gcry_bug( __FILE__ , __LINE__ )
81 #endif
82
83 #define log_hexdump _gcry_log_hexdump
84 #define log_bug     _gcry_log_bug
85 #define log_fatal   _gcry_log_fatal
86 #define log_error   _gcry_log_error
87 #define log_info    _gcry_log_info
88 #define log_debug   _gcry_log_debug
89 #define log_printf  _gcry_log_printf
90
91
92
93
94 /*-- cipher/pubkey.c --*/
95
96 #ifndef DID_MPI_TYPEDEF
97  typedef struct gcry_mpi * MPI;
98  #define DID_MPI_TYPEDEF
99 #endif
100
101 #ifndef mpi_powm
102    #define mpi_powm(w,b,e,m)   gcry_mpi_powm( (w), (b), (e), (m) )
103 #endif
104
105 int string_to_pubkey_algo( const char *string );
106 const char * pubkey_algo_to_string( int algo );
107 unsigned pubkey_nbits( int algo, MPI *pkey );
108
109
110
111 /*-- primegen.c --*/
112 MPI _gcry_generate_secret_prime( unsigned nbits );
113 MPI _gcry_generate_public_prime( unsigned nbits );
114 MPI _gcry_generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
115                                            MPI g, MPI **factors );
116
117
118
119
120 /* replacements of missing functions */
121 #ifndef HAVE_MEMICMP
122 int memicmp( const char *a, const char *b, size_t n );
123 #endif
124 #ifndef HAVE_STPCPY
125 char *stpcpy(char *a,const char *b);
126 #endif
127 #ifndef HAVE_STRLWR
128 char *strlwr(char *a);
129 #endif
130 #ifndef HAVE_STRTOUL
131   #define strtoul(a,b,c)  ((unsigned long)strtol((a),(b),(c)))
132 #endif
133 #ifndef HAVE_MEMMOVE
134   #define memmove(d, s, n) bcopy((s), (d), (n))
135 #endif
136 #ifndef HAVE_STRICMP
137   #define stricmp(a,b)   strcasecmp( (a), (b) )
138 #endif
139 #ifndef HAVE_ATEXIT
140   #define atexit(a)    (on_exit((a),0))
141 #endif
142 #ifndef HAVE_RAISE
143   #define raise(a) kill(getpid(), (a))
144 #endif
145
146 /* some handy macros */
147 #ifndef STR
148   #define STR(v) #v
149 #endif
150 #define STR2(v) STR(v)
151 #define DIM(v) (sizeof(v)/sizeof((v)[0]))
152 #define DIMof(type,member)   DIM(((type *)0)->member)
153
154
155 #endif /* G10LIB_H */