* random.c: Fix prototype of the fast random gatherer. Noted by Joe
[gnupg.git] / cipher / algorithms.h
1 /* algorithms.h - prototypes for algorithm functions.
2  *      Copyright (C) 2002 Free Software Foundation, Inc.
3  *
4  * This file is part of GnuPG.
5  *
6  * GnuPG is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * GnuPG is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
19  * USA.
20  */
21 #ifndef GNUPG_ALGORITHMS_H
22 #define GNUPG_ALGORITHMS_H 1
23
24 const char *dynload_enum_module_names (int seq);
25
26 const char *
27 md5_get_info (int algo, size_t *contextsize,
28               byte **r_asnoid, int *r_asnlen, int *r_mdlen,
29               void (**r_init)( void *c ),
30               void (**r_write)( void *c, byte *buf, size_t nbytes ),
31               void (**r_final)( void *c ),
32               byte *(**r_read)( void *c )
33               );
34
35
36 const char *
37 rmd160_get_info (int algo, size_t *contextsize,
38                  byte **r_asnoid, int *r_asnlen, int *r_mdlen,
39                  void (**r_init)( void *c ),
40                  void (**r_write)( void *c, byte *buf, size_t nbytes ),
41                  void (**r_final)( void *c ),
42                  byte *(**r_read)( void *c )
43                  );
44
45 const char *
46 sha1_get_info (int algo, size_t *contextsize,
47                byte **r_asnoid, int *r_asnlen, int *r_mdlen,
48                void (**r_init)( void *c ),
49                void (**r_write)( void *c, byte *buf, size_t nbytes ),
50                void (**r_final)( void *c ),
51                byte *(**r_read)( void *c )
52                );
53
54 const char *
55 sha256_get_info (int algo, size_t *contextsize,
56                  byte **r_asnoid, int *r_asnlen, int *r_mdlen,
57                  void (**r_init)( void *c ),
58                  void (**r_write)( void *c, byte *buf, size_t nbytes ),
59                  void (**r_final)( void *c ),
60                  byte *(**r_read)( void *c )
61                  );
62
63 const char *
64 sha384_get_info (int algo, size_t *contextsize,
65                  byte **r_asnoid, int *r_asnlen, int *r_mdlen,
66                  void (**r_init)( void *c ),
67                  void (**r_write)( void *c, byte *buf, size_t nbytes ),
68                  void (**r_final)( void *c ),
69                  byte *(**r_read)( void *c )
70                  );
71
72 const char *
73 sha512_get_info (int algo, size_t *contextsize,
74                  byte **r_asnoid, int *r_asnlen, int *r_mdlen,
75                  void (**r_init)( void *c ),
76                  void (**r_write)( void *c, byte *buf, size_t nbytes ),
77                  void (**r_final)( void *c ),
78                  byte *(**r_read)( void *c )
79                  );
80
81 const char *
82 des_get_info( int algo, size_t *keylen,
83               size_t *blocksize, size_t *contextsize,
84               int (**setkeyf)( void *c, const byte *key, unsigned keylen ),
85               void (**encryptf)( void *c, byte *outbuf, const byte *inbuf ),
86               void (**decryptf)( void *c, byte *outbuf, const byte *inbuf )
87               );
88
89 const char *
90 cast5_get_info( int algo, size_t *keylen,
91                 size_t *blocksize, size_t *contextsize,
92                 int (**setkeyf)( void *c, const byte *key, unsigned keylen ),
93                 void (**encryptf)( void *c, byte *outbuf, const byte *inbuf ),
94                 void (**decryptf)( void *c, byte *outbuf, const byte *inbuf )
95                 );
96
97
98 const char *
99 blowfish_get_info( int algo, size_t *keylen,
100                    size_t *blocksize, size_t *contextsize,
101                    int (**setkeyf)(void *c, const byte *key, unsigned keylen),
102                    void (**encryptf)(void *c, byte *outbuf, const byte *inbuf),
103                    void (**decryptf)(void *c, byte *outbuf, const byte *inbuf)
104                  );
105
106 const char *
107 twofish_get_info( int algo, size_t *keylen,
108                   size_t *blocksize, size_t *contextsize,
109                   int (**setkeyf)( void *c, const byte *key, unsigned keylen ),
110                   void (**encryptf)( void *c, byte *outbuf, const byte *inbuf),
111                   void (**decryptf)( void *c, byte *outbuf, const byte *inbuf )
112                   );
113
114 /* this is just a kludge for the time we have not yet changed the cipher
115  * stuff to the scheme we use for random and digests */
116 const char *
117 rijndael_get_info( int algo, size_t *keylen,
118                    size_t *blocksize, size_t *contextsize,
119                    int (**setkeyf)( void *c, const byte *key, unsigned keylen),
120                    void (**encryptf)(void *c, byte *outbuf, const byte *inbuf),
121                    void (**decryptf)(void *c, byte *outbuf, const byte *inbuf)
122                    );
123
124 const char *
125 idea_get_info( int algo, size_t *keylen,
126                size_t *blocksize, size_t *contextsize,
127                int (**setkeyf)( void *c, const byte *key, unsigned keylen ),
128                void (**encryptf)( void *c, byte *outbuf, const byte *inbuf ),
129                void (**decryptf)( void *c, byte *outbuf, const byte *inbuf )
130                );
131
132 #endif /*GNUPG_ALGORITHMS_H*/