See ChangeLog: Mon Nov 15 21:36:02 CET 1999 Werner Koch
[gnupg.git] / include / g10lib.h
1 /* g10lib.h -  internal defintions for libgcrypt
2  *      Copyright (C) 1998 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 easily distinguish between internal and external
6  * usage of gcrypt.h
7  *
8  * This file is part of GnuPG.
9  *
10  * GnuPG 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  * GnuPG 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 #include <gcrypt.h>
33
34 #ifdef G10_I18N_H
35   #error i18n should not be included here
36 #endif
37
38 #define _(a)  g10_gettext(a)
39 #define N_(a) (a)
40
41 /*-- gcrypt/global.c --*/
42 int set_lasterr( int ec );
43
44 void *g10_malloc( size_t n );
45 void *g10_calloc( size_t n, size_t m );
46 void *g10_malloc_secure( size_t n );
47 void *g10_calloc_secure( size_t n, size_t m );
48 void *g10_realloc( void *a, size_t n );
49 char *g10_strdup( const char * a);
50 void *g10_xmalloc( size_t n );
51 void *g10_xcalloc( size_t n, size_t m );
52 void *g10_xmalloc_secure( size_t n );
53 void *g10_xcalloc_secure( size_t n, size_t m );
54 void *g10_xrealloc( void *a, size_t n );
55 char *g10_xstrdup( const char * a);
56 void  g10_free( void *p );
57
58
59 /*-- gcrypt/misc.c --*/
60 const char *g10_gettext( const char *key );
61 void g10_fatal_error(int rc, const char *text );
62
63
64 /*-- util/memory.c --*/
65
66 #define g10_private_malloc(n)        m_alloc((n))
67 #define g10_private_malloc_secure(n) m_alloc_secure((n))
68 #define g10_private_is_secure(n)     m_is_secure((n))
69 #define g10_private_realloc(a,n)     m_realloc((a),(n))
70 #define g10_private_free(p)          m_free((p))
71
72
73 /*-- cipher/pubkey.c --*/
74
75 #ifndef DID_MPI_TYPEDEF
76  typedef struct gcry_mpi * MPI;
77  #define DID_MPI_TYPEDEF
78 #endif
79
80 int string_to_pubkey_algo( const char *string );
81 const char * pubkey_algo_to_string( int algo );
82 unsigned pubkey_nbits( int algo, MPI *pkey );
83 int pubkey_generate( int algo, unsigned nbits, MPI *skey, MPI **retfactors );
84 int pubkey_check_secret_key( int algo, MPI *skey );
85 int pubkey_encrypt( int algo, MPI *resarr, MPI data, MPI *pkey );
86 int pubkey_decrypt( int algo, MPI *result, MPI *data, MPI *skey );
87
88
89
90
91 /*-- primegen.c --*/
92 MPI generate_secret_prime( unsigned nbits );
93 MPI generate_public_prime( unsigned nbits );
94 MPI generate_elg_prime( int mode, unsigned pbits, unsigned qbits,
95                                            MPI g, MPI **factors );
96
97
98
99 #endif /* G10LIB_H */