* md.c (gcry_md_hash_buffer): Convert ERR to gpg_error_t in
[libgcrypt.git] / cipher / ChangeLog
1 2003-07-18  Werner Koch  <wk@gnupg.org>
2
3         * md.c (gcry_md_hash_buffer): Convert ERR to gpg_error_t in
4         gpg_strerror.
5
6 2003-07-14  Moritz Schulte  <moritz@g10code.com>
7
8         * cipher.c (gcry_cipher_lookup_func_name): Also check the cipher
9         name aliases, not just the primary name.
10         (gcry_cipher_map_name): Remove kludge for aliasing Rijndael to
11         AES.
12
13         * arcfour.c, blowfish.c, cast5.c, des.c, twofish.c: Adjust cipher
14         specification structures.
15
16         * rijndael.c (rijndael_names, rijndael192_names,
17         rijndael256_names): New variables, use them in the cipher
18         specifications.
19
20         * rmd160test.c: Removed file.
21
22         * ac.c, arcfour.c, blowfish.c, cast5.c, cipher.c, des.c, dsa.c,
23         elgamal.c, md.c, pubkey.c, random.c, rijndael.c, rsa.c, twofish.c:
24         Used gcry_err* wrappers for libgpg symbols.
25
26         * primegen.c (gen_prime): Correct the order arguments to
27         extra_check.
28
29 2003-07-12  Moritz Schulte  <moritz@g10code.com>
30
31         * ac.c: Replaced all public occurences of gpg_error_t with
32         gcry_error_t.
33         * cipher.c: Likewise.
34         * md.c: Likewise.
35         * pubkey.c: Likewise.
36         * random.c: Likewise.
37
38         * cipher.c: Added support for TWOFISH128.
39
40 2003-07-08  Moritz Schulte  <moritz@g10code.com>
41
42         * ac.c (gcry_ac_data_copy_internal): New function, based on
43         gcry_ac_data_copy.
44         (gcry_ac_data_copy): Made public, use gcry_ac_data_copy_internal.
45         (gcry_ac_key_init): Use gcry_ac_data_copy_internal.
46
47 2003-07-07  Moritz Schulte  <moritz@g10code.com>
48
49         * ac.c (gcry_ac_data_set): Only release old MPI value if it is
50         different from the new value.  Bug reported by Simon Josefsson
51         <jas@extundo.com>.
52
53         * pubkey.c (gcry_pk_list): New function.
54         * md.c (gcry_md_list): New function.
55
56         * ac.c (gcry_ac_key_pair_generate): Fix calculation of format
57         string size.
58
59 2003-07-05  Moritz Schulte  <moritz@g10code.com>
60
61         * md.c: Named struct of digest_table `digest_table_entry'.
62         (digest_table_entry): New member: algorithm; filled in.
63         (digest_table_entry): Removed unused member: flags.
64         (gcry_md_register): New argument: algorithm_id, filled in.
65         (gcry_md_register_default): Used algorithm ID from module
66         structure.
67         (gcry_md_map_name): Likewise.
68         (md_enable): Likewise.
69         (md_read): Likewise.
70         (gcry_md_info): Likewise.
71
72         * pubkey.c: Named truct for pubkey_table `pubkey_table_entry'.
73         (pubkey_table_entry): New member: algorithm; filled in.
74         (gcry_pk_register_default): Used algorithm ID from pubkey_table.
75         (gcry_pk_register): New argument: algorithm_id, filled in.
76         (gcry_pk_map_name): Used algorithm ID from module structure.
77         (gcry_pk_decrypt): Likewise.
78         (gcry_pk_encrypt): Likewise.
79         (gcry_pk_verify): Likewise.
80         (gcry_pk_sign): Likewise.
81         (gcry_pk_testkey): Likewise.
82         (gcry_pk_genkey): Likewise.
83         (gcry_pk_get_nbits): Likewise.
84         (sexp_to_key): Removed unused variable: algo.
85         (sexp_to_sig): Likewise.
86
87         * cipher.c: Named struct for cipher_table `cipher_table_entry'.
88         (cipher_table_entry): New member: algorithm; filled in.
89         (gcry_cipher_register_default): Used algorithm ID from
90         cipher_table.
91         (gcry_cipher_register): New argument: algorithm_id, filled in.
92         (gcry_cipher_map_name): Used algorithm ID from module structure.
93
94         * arcfour.c (cipher_spec_arcfour): Removed algorithm ID.
95         * blowfish.c (cipher_spec_blowfish): Likewise.
96         * cast5.c (cipher_spec_cast5): Likewise.
97         * crc.c (digest_spec_crc32): Likewise.
98         * crc.c (digest_spec_crc32_rfc1510): Likewise.
99         * crc.c (digest_spec_crc32_rfc2440): Likewise.
100         * des.c (cipher_spec_des): Likewise.
101         * des.c (cipher_spec_tripledes): Likewise.
102         * dsa.c (pubkey_spec_dsa): Likewise.
103         * elgamal.c (pubkey_spec_elg): Likewise.
104         * md4.c (digest_spec_md4): Likewise.
105         * md5.c (digest_spec_md5): Likewise.
106         * aes.c (cipher_spec_aes): Likewise.
107         * aes.c (cipher_spec_aes192): Likewise.
108         * aes.c (cipher_spec_aes256): Likewise.
109         * rsa.c (pubkey_spec_rsa): Likewise.
110         * sha1.c (digest_spec_sha1): Likewise.
111         * sha256.c (digest_spec_sha256): Likewise.
112         * sha512.c (digest_spec_sha512): Likewise.
113         * tiger.c (digest_spec_tiger): Likewise.
114         * twofish.c (cipher_spec_twofish): Likewise.
115         * twofish.c (cipher_spec_twofish128): Likewise.
116
117         * Makefile.am (EXTRA_libcipher_la_SOURCES): Fix list of source
118         files; reported by Simon Josefsson <jas@extundo.com>.
119
120         * pubkey.c: Replaced all occurences of `id' with `algorithm',
121         since `id' is a keyword in obj-c.
122         * md.c: Likewise.
123         * cipher.c: Likewise.
124
125         * crc.c, md4.c, md5.c, rmd160.c, sha1.c, sha256.c, tiger.c:
126         Replaced all occurences of gcry_digest_spec_t with gcry_md_spec_t.
127
128         * dsa.c, rsa.c, elgamal.c: Replaced all occurencens of
129         gcry_pubkey_spec_t with gcry_pk_spec_t.
130
131         * md.c: Replaced all occurences of gcry_digest_spec_t with
132         gcry_md_spec_t.
133         (gcry_digest_register_default): Renamed to ...
134         (gcry_md_register_default): ... this; adjusted callers.
135         (gcry_digest_lookup_func_name): Renamed to ...
136         (gcry_md_lookup_func_name): ... this; adjusted callers.
137         (gcry_digest_lookup_name): Renamed to ...
138         (gcry_md_lookup_name): ... this; adjusted callers.
139         (gcry_digest_register): Renamed to ...
140         (gcry_md_register): ... this.
141         (gcry_digest_unregister): Renamed to ...
142         (gcry_md_unregister): ... this.
143
144         * pubkey.c (gcry_pubkey_register): Renamed to ...
145         (gcry_pk_register): ... this.
146         (gcry_pubkey_unregister): Renamed to ...
147         (gcry_pk_unregister): ... this.
148         Replaced all occurences of gcry_pubkey_spec_t with gcry_pk_spec_t.
149         (gcry_pubkey_register_default): Renamed to ...
150         (gcry_pk_register_default): ... this; adjusted callers.
151         (gcry_pubkey_lookup_func_name): Renamed to ...
152         (gcry_pk_lookup_func_name): ... this; adjusted callers.
153         (gcry_pubkey_lookup_name): Renamed to ...
154         (gcry_pk_lookup_name): ... this; adjusted callers.
155
156         * md.c (gcry_md_hash_buffer): Fix error checking.  Thanks to Simon
157         Josefsson <jas@extunde.com>.
158
159 2003-07-04  Moritz Schulte  <moritz@g10code.com>
160
161         * cipher.c (gcry_cipher_list): New function.
162
163 2003-07-01  Moritz Schulte  <moritz@g10code.com>
164
165         * pubkey.c (sexp_to_sig): Accept a `flags' S-expression to be more
166         consistent with sexp_to_enc.
167
168 2003-06-30  Moritz Schulte  <moritz@g10code.com>
169
170         * Makefile.am (libcipher_la_SOURCES): Added: ac.c.
171
172         * pubkey.c (_gcry_pk_module_lookup): New function.
173         (_gcry_pk_module_release): New function.
174
175 2003-06-29  Moritz Schulte  <moritz@g10code.com>
176
177         * ac.c: New file.
178
179 2003-06-26  Werner Koch  <wk@gnupg.org>
180
181         * md.c (gcry_md_hash_buffer): Trigger BUG correcly with new API.
182
183 2003-06-19  Werner Koch  <wk@gnupg.org>
184
185         * md.c (gcry_md_is_enabled): Fixed. 
186
187 2003-06-18  Werner Koch  <wk@gnupg.org>
188
189         * cipher.c (gcry_cipher_get_algo_keylen): New.
190         (gcry_cipher_get_algo_blklen): New.
191
192 2003-06-18  Moritz Schulte  <moritz@g10code.com>
193
194         * arcfour.c, cipher.c, blowfish.c, md.c, cast5.c, pubkey.c, crc.c,
195         des.c, dsa.c, elgamal.c, md4.c, md5.c, random.c, rijndael.c,
196         rmd160.c, rsa.c, sha1.c, sha256.c, sha512.c, tiger.c, twofish.c:
197         Replaced older types GcryDigestSpec, GcryCipherSpec and
198         GcryPubkeySpec with newer types: gcry_digest_spec_t,
199         gcry_cipher_spec_t and gcry_pubkey_spec_t.
200
201         * md.c (gcry_digest_id_new): Removed function.
202         (gcry_digest_register): Removed code for generating a new module
203         ID.
204
205         * pubkey.c (gcry_pubkey_id_new): Removed function.
206         (gcry_pubkey_register): Removed code for generating a new module
207         ID.
208
209         * cipher.c, md.c, pubkey.c: Replace old type GcryModule with newer
210         one: gcry_module_t.
211         (gcry_cipher_id_new): Removed function.
212         (gcry_cipher_register): Removed code for generating a new module
213         ID.
214
215         * cipher.c (gcry_cipher_register): Adjust call to
216         _gcry_module_add.
217         (gcry_cipher_register_default): Likewise.
218         * pubkey.c (gcry_pubkey_register_default): Likewise.
219         (gcry_pubkey_register): Likewise.
220         * md.c (gcry_digest_register_default): Likewise.
221         (gcry_digest_register): Likewise.
222
223         * md.c (gcry_digest_lookup_func_id): Removed function.
224         (gcry_digest_lookup_id): Likewise.
225         (gcry_digest_id_new): Use _gcry_module_lookup_id instead of
226         gcry_digest_lookup_id.
227         (digest_algo_to_string): Likewise.
228         (check_digest_algo): Likewise.
229         (md_enable): Likewise.
230         (md_digest_length): Likewise.
231         (md_asn_oid): Likewise.
232
233         * pubkey.c (gcry_pubkey_lookup_id): Removed function.
234         (gcry_pubkey_lookup_func_id): Likewise.
235         (gcry_pubkey_id_new): Use _gcry_module_lookup_id instead of
236         gcry_pubkey_id_new.
237         (gcry_pk_algo_name): Likewise.
238         (disable_pubkey_algo): Likewise.
239         (check_pubkey_algo): Likewise.
240         (pubkey_get_npkey): Likewise.
241         (pubkey_get_nskey): Likewise.
242         (pubkey_get_nsig): Likewise.
243         (pubkey_get_nenc): Likewise.
244         (pubkey_generate): Likewise.
245         (pubkey_check_secret_key): Likewise.
246         (pubkey_encrypt): Likewise.
247         (pubkey_decrypt): Likewise.
248         (pubkey_sign): Likewise.
249         (pubkey_verify): Likewise.
250         (gcry_pk_algo_info): Likewise.
251
252         * cipher.c (gcry_cipher_lookup_func_id): Removed function.
253         (gcry_cipher_lookup_id): Likewise.
254         (cipher_algo_to_string): use _gcry_module_lookup_id instead of
255         gcry_cipher_lookup_id.
256         (disable_cipher_algo): Likewise.
257         (check_cipher_algo): Likewise.
258         (cipher_get_blocksize): Likewise.
259         (gcry_cipher_open): Likewise.
260         (gcry_cipher_id_new): Likewise.
261
262 2003-06-17  Moritz Schulte  <moritz@g10code.com>
263
264         * Makefile.am (GCRYPT_MODULES): Set to @GCRYPT_CIPHERS@,
265         @GCRYPT_PUBKEY_CIPHERS@, @GCRYPT_DIGESTS@ and @GCRYPT_RANDOM@.
266         (libcipher_la_DEPENDENCIES): Set to $(GCRYPT_MODULES).
267         (libcipher_la_LIBADD): Likewise.
268         (AM_CFLAGS): Added: @GPG_ERROR_CFLAGS@.
269         (EXTRA_libcipher_la_SOURCES): Added all conditional sources.
270
271         * md.c (md_open): Use _gcry_fast_random_poll instead of
272         fast_random_poll.
273         * cipher.c (gcry_cipher_open): Likewise.
274
275         * random.h (fast_random_poll): Removed macro.
276
277         * blowfish.c, md4.c, md5.c, rmd160.c, sha1.c, sha256.c, sha512.c,
278         tiger.c: Use Autoconf's WORDS_BIGENDIAN instead of our own
279         BIG_ENDIAN_HOST.
280
281 2003-06-16  Moritz Schulte  <moritz@g10code.com>
282
283         * random.c (getfnc_gather_random): Do not special-case
284         USE_ALL_RANDOM_MODULES, make it the default.
285
286         * dsa.c: Replace last occurences of old type names with newer
287         names (i.e. replace MPI with gcry_mpi_t).
288         * elgamal.c: Likewise.
289         * primegen.c: Likewise.
290         * pubkey.c: Likewise.
291         * rsa.c: Likewise.
292
293 2003-06-14  Moritz Schulte  <moritz@g10code.com>
294
295         * des.c (des_setkey): Add selftest check.
296         (tripledes_set3keys): Likewise.
297         (do_tripledes_setkey): Remove selftest check.
298         (do_des_setkey): Likewise.
299
300 2003-06-11  Moritz Schulte  <moritz@g10code.com>
301
302         * md.c (_gcry_md_init): New function.
303         * cipher.c (_gcry_cipher_init): New function.
304         * pubkey.c (_gcry_pk_init): New function.
305
306 2003-06-13  Werner Koch  <wk@gnupg.org>
307
308         * md.c (gcry_md_get_algo): Reverted to old API.  This is a
309         convenience function anyway and error checking is not approriate.
310         (gcry_md_is_secure): New.
311         (gcry_md_is_enabled): New.
312
313 2003-06-12  Werner Koch  <wk@gnupg.org>
314
315         * cipher.c (gcry_cipher_open): Make sure HANDLE is set to NULL on
316         error.
317
318 2003-06-11  Werner Koch  <wk@gnupg.org>
319
320         * md.c (gcry_md_open): Make sure H receives either NULL or an
321         valid handle.
322         (gcry_md_copy): Swapped arguments so that it is more in lione with
323         md_open and most other API fucntions like memcpy (destination
324         comes first).  Make sure HANDLE is set to NULL on error.
325         
326         * rijndael.c (do_encrypt): Hack to force correct alignment.  It
327         seems not to be not sufficient, though.  We should rework this
328         fucntions and remove all these ugly casts.  Let the compiler
329         optimize or have an assembler implementation.
330
331 2003-06-09  Moritz Schulte  <moritz@g10code.com>
332
333         * Makefile.am: Removed rules serpent, since that is not commited
334         yet.
335
336 2003-06-08  Moritz Schulte  <moritz@g10code.com>
337
338         * pubkey.c (gcry_pk_encrypt): Improve calculation for size of the
339         format string.
340
341 2003-06-07  Moritz Schulte  <moritz@g10code.com>
342
343         * arcfour.c, bithelp.h, blowfish.c, cast5.c, cipher.c, crc.c,
344         des.c, dsa.c, elgamal.c, md4.c, md5.c, md.c, primegen.c, pubkey.c,
345         rand-internal.h, random.c, random.h, rijndael.c, rmd160.c,
346         rmd160test.c, rmd.h, rndeged.c, rndlinux.c, rndunix.c, rndw32.c,
347         rsa.c, sha1.c, sha256.c, sha512.c, tiger.c, twofish.c: Edited all
348         preprocessor instructions to remove whitespace before the '#'.
349         This is not required by C89, but there are some compilers out
350         there that don't like it.  Replaced any occurence of the now
351         deprecated type names with the new ones.
352         
353 2003-06-04  Moritz Schulte  <moritz@g10code.com>
354
355         * pubkey.c (gcry_pk_encrypt): Construct an arg_list and use
356         gcry_sexp_build_array instead of gcry_sexp_build.
357         (gcry_pk_sign): Likewise.
358         (gcry_pk_genkey): Likewise.
359
360 2003-06-01  Moritz Schulte  <moritz@g10code.com>
361
362         * dsa.c (_gcry_dsa_generate): Do not check wether the algorithm ID
363         does indeed belong to DSA.
364         (_gcry_dsa_sign): Likewise.
365         (_gcry_dsa_verify): Likewise.
366         (_gcry_dsa_get_nbits): Likewise.
367
368         * elgamal.c (_gcry_elg_check_secret_key): Do not check wether the
369         algorithm ID does indeed belong to ElGamal.
370         (_gcry_elg_encrypt): Likewise.
371         (_gcry_elg_decrypt): Likewise.
372         (_gcry_elg_sign): Likewise.
373         (_gcry_elg_verify): Likewise.
374         (_gcry_elg_get_nbits): Likewise.
375         (_gcry_elg_generate): Likewise.
376
377         * rsa.c (_gcry_rsa_generate): Do not check wether the algorithm ID
378         does indeed belong to RSA.
379         (_gcry_rsa_encrypt): Likewise.
380         (_gcry_rsa_decrypt): Likewise.
381         (_gcry_rsa_sign): Likewise.
382         (_gcry_rsa_verify): Likewise.
383         (_gcry_rsa_get_nbits): Likewise.
384
385 2003-05-30  Moritz Schulte  <moritz@g10code.com>
386
387         * md.c (md_get_algo): Return zero in case to algorithm is enabled.
388
389         * md.c (gcry_md_info): Adjusted for new no-errno-API.
390         (md_final): Likewise.
391         (gcry_md_get_algo): Likewise.
392         * pubkey.c (gcry_pk_get_keygrip): Likewise.
393         (gcry_pk_ctl): Likewise.
394         (gcry_pk_algo_info): Likewise.
395         * des.c (selftest): Likewise.
396
397 2003-05-29  Moritz Schulte  <moritz@g10code.com>
398
399         * md.c (md_enable): Do not forget to release module on error.
400         (gcry_md_open): Adjusted for new no-errno-API.
401         (md_open): Likewise.
402         (md_copy): Likewise.
403         (gcry_md_copy): Likewise.
404         (gcry_md_setkey): Likewise.
405         (gcry_md_algo_info): Likewise.
406
407         * cipher.c (gcry_cipher_open): Adjusted for new no-errno-API and
408         also fixed a locking bug.
409         (gcry_cipher_encrypt): Adjusted for new no-errno-API.
410         (gcry_cipher_decrypt): Likewise.
411         (gcry_cipher_ctl): Likewise.
412         (gcry_cipher_info): Likewise.
413         (gcry_cipher_algo_info): Likewise.
414
415 2003-05-28  Moritz Schulte  <moritz@g10code.com>
416
417         * md.c (md_enable): Adjusted for libgpg-error.
418         (gcry_md_enable): Likewise.
419         (gcry_digest_register_default): Likewise.
420         (gcry_digest_register): Likewise.
421         (check_digest_algo): Likewise.
422         (prepare_macpads): Likewise.
423         (gcry_md_setkey): Likewise.
424         (gcry_md_ctl): Likewise.
425         (gcry_md_get): Likewise.
426         (gcry_md_algo_info): Likewise.
427         (gcry_md_info): Likewise.
428         * dsa.c (_gcry_dsa_generate): Likewise.
429         (_gcry_dsa_check_secret_key): Likewise.
430         (_gcry_dsa_sign): Likewie.
431         (_gcry_dsa_verify): Likewise.
432         * twofish.c (do_twofish_setkey): Likewise.
433         (twofish_setkey): Likewise.
434         * cipher.c (gcry_cipher_register): Likewise.
435
436 2003-05-25  Moritz Schulte  <moritz@g10code.com>
437
438         * rijndael.c (do_setkey): Adjusted for libgpg-error.
439         (rijndael_setkey): Likewise.
440         * random.c (gcry_random_add_bytes): Likewise.
441         * elgamal.c (_gcry_elg_generate): Likewise.
442         (_gcry_elg_check_secret_key): Likewise.
443         (_gcry_elg_encrypt): Likewise.
444         (_gcry_elg_decrypt): Likewise.
445         (_gcry_elg_sign): Likewise.
446         (_gcry_elg_verify): Likewise.
447         * rsa.c (_gcry_rsa_generate): Likewise.
448         (_gcry_rsa_check_secret_key): Likewise.
449         (_gcry_rsa_encrypt): Likewise.
450         (_gcry_rsa_decrypt): Likewise.
451         (_gcry_rsa_sign): Likewise.
452         (_gcry_rsa_verify): Likewise.
453         * pubkey.c (dummy_generate, dummy_check_secret_key, dummy_encrypt,
454         dummy_decrypt, dummy_sign, dummy_verify): Likewise.
455         (gcry_pubkey_register): Likewise.
456         (check_pubkey_algo): Likewise.
457         (pubkey_generate): Likewise.
458         (pubkey_check_secret_key): Likewise.
459         (pubkey_encrypt): Likewise.
460         (pubkey_decrypt): Likewise.
461         (pubkey_sign): Likewise.
462         (pubkey_verify): Likewise.
463         (sexp_elements_extract): Likewise.
464         (sexp_to_key): Likewise.
465         (sexp_to_sig): Likewise.
466         (sexp_to_enc): Likewise.
467         (sexp_data_to_mpi): Likewise.
468         (gcry_pk_encrypt): Likewise.
469         (gcry_pk_decrypt): Likewise.
470         (gcry_pk_sign): Likewise.
471         (gcry_pk_verify): Likewise.
472         (gcry_pk_testkey): Likewise.
473         (gcry_pk_genkey): Likewise.
474         (gcry_pk_ctl): Likewise.
475         * cipher.c (dummy_setkey): Likewise.
476         (check_cipher_algo): Likewise.
477         (gcry_cipher_open): Likewise.
478         (cipher_setkey): Likewise.
479         (gcry_cipher_ctl): Likewise.
480         (cipher_encrypt): Likewise.
481         (gcry_cipher_encrypt): Likewise.
482         (cipher_decrypt): Likewise.
483         (gcry_cipher_decrypt): Likewise.
484         (gcry_cipher_info): Likewise.
485         (gcry_cipher_algo_info): Likewise.
486         * cast5.c (cast_setkey): Likewise.
487         (do_cast_setkey): Likewise.
488         * arcfour.c (arcfour_setkey): Likewise.
489         (do_arcfour_setkey): Likewise.
490         * blowfish.c (do_bf_setkey): Likewise.
491         (bf_setkey): Likewise.
492         * des.c (do_des_setkey): Likewise.
493         (do_tripledes_setkey): Likewise.
494
495 2003-05-22  Moritz Schulte  <moritz@g10code.com>
496
497         * tiger.c: Merged code ussing the U64_C macro from GnuPG.
498
499         * sha512.c: Likewise.
500
501 2003-05-17  Moritz Schulte  <moritz@g10code.com>
502
503         * pubkey.c (gcry_pk_genkey): Fix type: acquire a lock, instead of
504         releasing it.
505
506 2003-05-11  Moritz Schulte  <moritz@g10code.com>
507
508         * pubkey.c (gcry_pk_testkey): Call REGISTER_DEFAULT_CIPHERS.
509         (gcry_pk_ctl): Likewise.
510
511 2003-04-27  Moritz Schulte  <moritz@g10code.com>
512
513         * pubkey.c (gcry_pk_genkey): Release sexp after extracted data has
514         been used.
515
516         * md.c (gcry_md_get_algo_dlen): Simplified, simply call
517         md_digest_length to do the job.
518
519         * des.c (do_des_setkey): Check for selftest failure not only
520         during initialization.
521         (do_tripledes_setkey): Include check for selftest failure.
522
523         * pubkey.c (gcry_pubkey_register_default): New macro
524         `pubkey_use_dummy', use it.
525
526         * elgamal.c (elg_names): New variable.
527         (pubkey_spec_elg): Include elg_names.
528
529         * dsa.c (dsa_names): New variable.
530         (pubkey_spec_dsa): Include dsa_names.
531
532         * rsa.c (rsa_names): New variable.
533         (pubkey_spec_rsa): Include rsa_names.
534
535         * pubkey.c (gcry_pubkey_lookup_func_name): Compare name also with
536         the names listed in `sexp_names'.
537
538 2003-04-24  Moritz Schulte  <moritz@g10code.com>
539
540         * pubkey.c (sexp_to_key): New variables: module, pubkey.  Adjusted
541         to new module interface.
542         (sexp_to_key): Changend type of argument `retalgo' from `int *' to
543         `GcryModule **'.  Adjusted all callers.  Removed argument:
544         r_algotblidx.
545         (sexp_to_sig): Changend type of argument `retalgo' from `int *' to
546         `GcryModule **'.  Adjusted all callers.
547         (sexp_to_enc): Likewise.
548
549         (pubkey_get_npkey, pubkey_get_nskey, pubkey_get_nsig,
550         pubkey_get_nenc): Use strlen to find out the number.
551
552         * rsa.c: Adjust pubkey_spec_rsa to new internal interface.
553         * dsa.c: Likewise.
554         * elgamal.c: Likewise.
555
556 2003-04-17  Moritz Schulte  <moritz@g10code.com>
557
558         * pubkey.c (sexp_elements_extract): New function.
559         * pubkey.c (sexp_to_key): Removed variable `idx', added `err', use
560         sexp_elements_extract.
561         (sexp_to_sig): Likewise.
562         (sexp_to_enc): Likewise.
563
564         * pubkey.c: Terminate list correctly.
565         * md.c: Include sha512/sha384 in digest_table.
566
567 2003-04-16  Moritz Schulte  <moritz@g10code.com>
568
569         * Makefile.am: Include support for sha512.c.
570
571         * sha512.c: New file, merged from GnuPG, with few modifications
572         for libgcrypt.
573
574         * rand-internal.h: Removed declarations for constructor functions.
575
576         * md.c (md_copy): Call _gcry_module_use for incrementing the usage
577         counter of the digest modules.
578
579         * rsa.c: Do not include "rsa.h".
580         * dsa.c: Do not include "dsa.h".
581         * elgamal.c: Do not include "elgamal.h".
582         * des.c: Do not include "des.h".
583         * cast5.c: Do not include "cast5.h".
584         * blowfish.c: Do not include "blowfish.h".
585         * arcfour.c: Do not include "arcfour.h".
586
587         * Makefile.am (libcipher_la_DEPENDENCIES): Removed.
588         (libcipher_la_LIBADD): Removed.
589         Use Automake conditionals for conditional compilation.
590
591 2003-04-13  Moritz Schulte  <moritz@g10code.com>
592
593         * cipher.c (gcry_cipher_open): Call REGISTER_DEFAULT_CIPHERS.
594
595         * md.c (gcry_md_list): New member: module.
596         (md_enable): New variable: module, changed use of module and
597         digest.
598         (md_enable): Initialize member: module.
599         (md_close): Call _gcry_module_release.
600
601         * cipher.c (gcry_cipher_open): New variable: module, changed use of
602         module and cipher.
603         (struct gcry_cipher_handle): New member: module.
604         (gcry_cipher_open): Initialize member: module.
605         (gcry_cipher_close): Call _gcry_module_release.
606
607 2003-04-09  Moritz Schulte  <moritz@g10code.com>
608         
609         * cipher.c: Include "ath.h".
610         * md.c: Likewise.
611         * pubkey.c: Likewise.
612
613         * cipher.c (ciphers_registered_lock): New variable.
614         * md.c (digests_registered_lock): New variable.
615         * pubkey.c (pubkeys_registered_lock): New variable.
616
617         * rndlinux.c (gnupgext_version, func_table): Removed definitions.
618         (gnupgext_enum_func): Removed function.
619         (_gcry_rndlinux_constructor): Removed function.
620
621         * rndegd.c (gnupgext_version, func_table): Removed definitions.
622         (gnupgext_enum_func): Removed function.
623         (_gcry_rndegd_constructor): Removed function.
624
625         * rndunix.c (gnupgext_version, func_table): Removed definitions.
626         (gnupgext_enum_func): Removed function.
627         (_gcry_rndunix_constructor): Removed function.
628
629         * rndw32.c (gnupgext_version, func_table): Removed definitions.
630         (gnupgext_enum_func): Removed function.
631         (_gcry_rndw32_constructor): Removed function.
632
633         * rndegd.c (rndegd_connect_socket): Simplify code for creating the
634         egd socket address.
635         (rndegd_connect_socket): Call log_fatal use instead of
636         g10_log_fatal.
637         (egd_gather_random): Renamed to ...
638         (rndegd_gather_random): ... here.
639
640 2003-04-08  Moritz Schulte  <moritz@g10code.com>
641
642         * rndlinux.c: Do not include "dynload.h".
643         * rndunix.c: Likewise.
644         * rndw32.c: Likewise.
645
646         * rndegd.c (rndegd_connect_socket): Factored out from ...
647         (egd_gather_random): here; call it.
648         (egd_socket): New variable.
649         (egd_gather_random): Initialize fd with egd_socket, do not declare
650         fd static.
651         (do_read): Merged few changes from GnuPG. FIXME - not finished?
652         Do not include "dynload.h".
653
654         * rndw32.c (gather_random): Renamed to rndw32_gather_random, do
655         not declare static.
656         (gather_random_fast): Renamed to rndw32_gather_random_fast, do not
657         declare static.
658
659         * rndunix.c (gather_random): Renamed to rndunix_gather_random, do
660         not declare static.
661         * rndegd.c (gather_random): Renamed to rndegd_gather_random, do
662         not declare static.
663         * rndlinux.c (gather_random): Renamed to rndlinux_gather_random,
664         do not declare static.
665
666 2003-04-07  Moritz Schulte  <moritz@g10code.com>
667
668         * Makefile.am (libcipher_la_SOURCES): Removed construct.c.
669         (libcipher_la_SOURCES): Added sha1.c, sha256.c, rmd160.c, md4.c,
670         md5.c, tiger.c and crc.c
671         (EXTRA_PROGRAMS): Removed sha1, sha256, rmd160, md4, md5, tiger
672         and crc.  Removed definitions: EXTRA_md4_SOURCES,
673         EXTRA_md5_SOURCES, EXTRA_rmd160_SOURCES, EXTRA_sha1_SOURCES,
674         EXTRA_sha256_SOURCES, EXTRA_tiger_SOURCES and EXTRA_crc_SOURCES,
675         BUILT_SOURCES, DISTCLEANFILES.
676
677         * pubkey.c: Do not include "elgamal.h", "dsa.h" and "rsa.h".
678
679         * Makefile.am (libcipher_la_SOURCES): Removed rsa.h, elgamal.h,
680         dsa.h, des.h, cast5.h, arcfour.h and blowfish.h.
681
682         * rsa.h: Removed file.
683         * elgamal.h: Removed file.
684         * dsa.h: Removed file.
685         * des.h: Removed file.
686         * cast5.h: Removed file.
687         * arcfour.h: Removed file.
688         * blowfish.h: Removed file.
689
690         * Makefile.am (libcipher_la_SOURCES): Removed dynload.c and
691         dynload.h.
692
693         * rsa.c (pubkey_spec_rsa): New variable.
694         * dsa.c (pubkey_spec_rsa): New variable.
695         * elgamal.c (pubkey_spec_elg): New variable.
696         
697         * rsa.c (_gcry_rsa_get_info): Removed function.
698         * elgamal.c (_gcry_elg_get_info): Removed function.
699         * dsa.c (_gcry_dsa_get_info): Removed function.
700
701         * tiger.c (tiger_get_info): Removed function.
702         (gnupgext_version, func_table): Removed definitions.
703         (gnupgext_enum_func): Removed function.
704         (_gcry_tiger_constructor): Removed function.
705         
706         * sha1.c (sha1_get_info): Removed function.
707         (gnupgext_version, func_table): Removed definitions.
708         (gnupgext_enum_func): Removed function.
709         (_gcry_sha1_constructor): Removed function.
710
711         * sha256.c (sha256_get_info): Removed function.
712         (gnupgext_version, func_table): Removed definitions.
713         (gnupgext_enum_func): Removed function.
714         (_gcry_sha256_constructor): Removed function.
715
716         * rmd160.c (rmd160_get_info): Removed function.
717         (gnupgext_version, func_table): Removed definitions.
718         (gnupgext_enum_func): Removed function.
719         (_gcry_rmd160_constructor): Removed function.
720
721         * md5.c (md5_get_info): Removed function.
722         (gnupgext_version, func_table): Removed definitions.
723         (gnupgext_enum_func): Removed function.
724         (_gcry_md5_constructor): Removed function.
725
726         * md4.c (md4_get_info): Removed function.
727         (gnupgext_version, func_table): Removed definitions.
728         (gnupgext_enum_func): Removed function.
729         (_gcry_md4_constructor): Removed function.
730
731         * crc.c (crc_get_info): Removed function.
732
733         * arcfour.c (do_arcfour_setkey): Changed type of context argument
734         to `void *', added local variable for cast, adjusted callers.
735         (arcfour_setkey): Likewise.
736         (encrypt_stream): Likewise.
737         * cast5.c (cast_setkey): Likewise.
738         (encrypt_block): Likewise.
739         * rijndael.c (rijndael_setkey): Likewise.
740         (rijndael_encrypt): Likewise.
741         (rijndael_decrypt): Likewise.
742         * twofish.c (twofish_setkey): Likewise.
743         (twofish_encrypt): Likewise.
744         (twofish_decrypt): Likewise.
745         * des.c (do_des_setkey): Likewise.
746         (do_des_encrypt): Likewise.
747         (do_des_encrypt): Likewise.
748         (do_tripledes_encrypt): Likewise.
749         (do_tripledes_encrypt): Likewise.
750         * blowfish.c (bf_setkey: Likewise.
751         (encrypt_block): Likewise.
752         (decrypt_block): Likewise.
753         
754         * arcfour.c (encrypt_stream): Likewise.
755
756         * rijndael.c (gnupgext_version, func_table): Removed definitions.
757         (gnupgext_enum_func) Removed function.  
758         
759         * twofish.c (gnupgext_version, func_table): Removed definitions.
760         (gnupgext_enum_func) Removed function.  
761
762         * cast5.c (CIPHER_ALGO_CAST5): Removed.
763
764         * blowfish.c (FNCCAST_SETKEY, FNCCAST_CRYPT): Removed macros.
765         (CIPHER_ALGO_BLOWFISH): Removed symbol.
766         * cast5.c (FNCCAST_SETKEY, FNCCAST_CRYPT): Likewise.
767         * des.c (selftest_failed): Removed.
768         (initialized): New variable.
769         (do_des_setkey): Run selftest, if not yet done.
770         (FNCCAST_SETKEY, FNCCAST_CRYPT): Removed macros.
771
772         * arcfour.c (_gcry_arcfour_get_info): Removed function.
773         * blowfish.c (_gcry_blowfish_get_info): Removed function.
774         * cast5.c (_gcry_cast5_get_info): Removed function.
775         * des.c (_gcry_des_get_info): Removed function.
776         * rijndael.c (_gcry_rijndael_get_info): Removed function.
777         * twofish.c (_gcry_twofish_get_info): Removed function.
778
779         * arcfour.c (cipher_spec_arcfour): New variable.
780         * twofish.c (cipher_spec_twofish, cipher_spec_twofish128): New
781         variables.
782         * rijndael.c (cipher_spec_aes, cipher_spec_aes192,
783         cipher_spec256): New variables.
784         * des.c (cipher_spec_des, cipher_spec_tripledes): New variables.
785         * cast5.c (cipher_spec_cast5): New variable.
786         * blowfish.c (cipher_spec_blowfish): Likewise.
787         
788         * twofish.c: Do not include "dynload.h".
789         * rijndael.c: Likewise.
790         * des.c: Likewise.
791         * cast5.c: Likewise.
792         * blowfish.c: Likewise.
793         * cipher.c: Likewise.
794         * crc.c: Likewise.
795         * md4.c: Likewise.
796         * md5.c: Likewise.
797         * md.c: Likewise.
798         * pubkey.c: Likewise.
799         * rijndael.c: Likewise.
800         * sha1.c: Likewise.
801         * sha256.c: Likewise.
802
803         * arcfour.c: Include "cipher.h".
804         * twofish.c: Likewise.
805         * rijndael.c: Likewise.
806         * des.c: Likewise.
807         * cast5.c: Likewise.
808         * blowfish.c: Likewise.
809
810         * twofish.c (twofish_setkey): Declared argument `key' const.
811         (twofish_encrypt): Declared argument `inbuf' const.
812         (twofish_decrypt): Likewise.
813
814         * rijndael.c (rijndael_setkey): Declared argument `key' const.
815         (rijndael_encrypt): Declared argument `inbuf' const.
816         (rijndael_decrypt): Likewise.
817
818         * des.c (do_des_setkey): Declared argument `key' const.
819         (do_tripledes_setkey): Likewise.
820         (do_des_encrypt): Declared argument `inbuf' const.
821         (do_des_decrypt): Likewise.
822         (do_tripledes_encrypt): Likewise.
823         (do_tripledes_decrypt): Likewise.
824
825         * cast5.c (encrypt_block): Declared argument `inbuf' const.
826         (decrypt_block): Likewise.
827         (cast_setkey): Declared argument `key' const.
828
829         * blowfish.c (do_bf_setkey): Declared argument `key' const.
830         (encrypt_block): Declared argument `inbuf' const.
831         (encrypt_block): Likewise.
832
833         
834
835         * cipher.c: Remove CIPHER_ALGO_DUMMY related code.
836         Removed struct cipher_table_s.
837         Changed definition of cipher_table.
838         Removed definition of disabled_algos.
839         (ciphers_registered, default_ciphers_registered): New variables.
840         (REGISTER_DEFAULT_CIPHERS): New macro.
841         (dummy_setkey): Declared argument `key' const.
842         (dummy_encrypt_block): Declared argument `inbuf' const.
843         (dummy_encrypt_block): Likewise.
844         (dummy_encrypt_stream): Likewise.
845         (dummy_encrypt_stream): Likewise.
846         (dummy_setkey): Use `unsigned char' instead of `byte'.
847         (dummy_encrypt_block): Likewise.
848         (dummy_decrypt_block): Likewise.
849         (dummy_encrypt_stream): Likewise.
850         (dummy_decrypt_stream): Likewise.
851         (gcry_cipher_register_default): New function.
852         (gcry_cipher_lookup_func_id): New function.
853         (gcry_cipher_lookup_func_name): New function.
854         (gcry_cipher_lookup_id): New function.
855         (gcry_cipher_lookup_name): New function.
856         (gcry_cipher_id_new): New function.
857         (gcry_cipher_register): New function.
858         (gcry_cipher_unregister): New function.
859         (setup_cipher_table): Removed function.
860         (load_cipher_modules): Removed function.
861         (gcry_cipher_map_name): Adjusted to use new module management.
862         (cipher_algo_to_string): Likewise.
863         (disable_cipher_algo): Likewise.
864         (check_cipher_algo): Likewise.
865         (cipher_get_keylen): Likewise.
866         (cipher_get_blocksize): Likewise.
867         (gcry_cipher_open): Likewise.
868         (struct gcry_cipher_handle): Replaced members algo, algo_index,
869         blocksize, setkey, encrypt, decrypt, stencrypt, stdecrypt with one
870         member: cipher.
871         (gcry_cipher_open): Adjusted code for new handle structure.
872         (cipher_setkey): Likewise.
873         (cipher_setiv): Likewise.
874         (cipher_reset): Likewise.
875         (do_ecb_encrypt): Likewise.
876         (do_ecb_decrypt): Likewise.
877         (do_cbc_encrypt): Likewise.
878         (do_cbc_decrypt): Likewise.
879         (do_cfb_encrypt): Likewise.
880         (do_cfb_decrypt): Likewise.
881         (do_ctr_encrypt): Likewise.
882         (cipher_encrypt): Likewise.
883         (gcry_cipher_encrypt): Likewise.
884         (cipher_decrypt): Likewise.
885         (gcry_cipher_decrypt): Likewise.
886         (cipher_sync): Likewise.
887         (gcry_cipher_ctl): Likewise.
888
889         * pubkey.c: Removed struct pubkey_table_s.
890         Changed definition of pubkey_table.
891         Removed definition of disabled_algos.
892         (pubkeys_registered, default_pubkeys_registered): New variables.
893         (REGISTER_DEFAULT_PUBKEYS): New macro.
894         (setup_pubkey_table): Removed function.
895         (load_pubkey_modules): Removed function.
896         (gcry_pubkey_register_default): New function.
897         (gcry_pubkey_lookup_func_id): New function.
898         (gcry_pubkey_lookup_func_name): New function.
899         (gcry_pubkey_lookup_id): New function.
900         (gcry_pubkey_lookup_name): New function.
901         (gcry_pubkey_id_new): New function.
902         (gcry_pubkey_register): New function.
903         (gcry_pubkey_unregister): New function.
904         (gcry_pk_map_name): Adjusted to use new module management.
905         (gcry_pk_algo_name): Likewise.
906         (disable_pubkey_algo): Likewise.
907         (check_pubkey_algo): Likewise.
908         (pubkey_get_npkey): Likewise.
909         (pubkey_get_nskey): Likewise.
910         (pubkey_get_nsig): Likewise.
911         (pubkey_get_nenc): Likewise.
912         (pubkey_generate): Likewise.
913         (pubkey_check_secret_key): Likewise.
914         (pubkey_encrypt): Likewise.
915         (pubkey_decrypt): Likewise.
916         (pubkey_sign): Likewise.
917         (pubkey_verify): Likewise.
918         (gcry_pk_get_nbits): Likewise.
919         (gcry_pk_algo_info): Likewise.
920
921         * md.c: Removed struct md_digest_list_s.
922         (digest_list): Changed definition.
923         (digests_registered, default_digests_registered): New variables.
924         (REGISTER_DEFAULT_DIGESTS): New macro.
925         (new_list_item): Removed function.
926         (setup_md_table): Removed function.
927         (load_digest_module): Removed function.
928         (gcry_digest_register_default): New function.
929         (gcry_digest_lookup_func_id): New function.
930         (gcry_digest_lookup_func_name): New function.
931         (gcry_digest_lookup_id): New function.
932         (gcry_digest_lookup_name): New function.
933         (gcry_digest_id_new): New function.
934         (gcry_digest_register): New function.
935         (gcry_digest_unregister): New function.
936         (GcryDigestEntry): New type.
937         (struct gcry_md_context): Adjusted type of `list'.
938         (gcry_md_map_name): Adjusted to use new module management.
939         (digest_algo_to_string): Likewise.
940         (check_digest_algo): Likewise.
941         (md_enable): Likewise.
942         (md_digest_length): Likewise.
943         (md_asn_oid): Likewise.
944
945 2003-04-07  Moritz Schulte  <moritz@g10code.com>
946
947         * pubkey.c: Replaced PUBKEY_ALGO_DSA with GCRY_PK_DSA,
948         PUBKEY_ALGO_RSA with GCRY_PK_RSA and PUBKEY_ALGO_ELGAMAL with
949         GCRY_PK_ELG.
950
951         * dsa.c: Replaced PUBKEY_ALGO_DSA with GCRY_PK_DSA.
952
953 2003-04-01  Moritz Schulte  <moritz@g10code.com>
954
955         * des.c: Removed checks for GCRY_CIPHER_3DES and GCRY_CIPHER_DES.
956
957 2003-03-31  Moritz Schulte  <moritz@g10code.com>
958
959         * tiger.c (tiger_get_info): Do not declare static.
960         * sha256.c (sha256_get_info): Likewise.
961         * sha1.c (sha1_get_info): Likewise.
962         * rmd160.c (rmd160_get_info): Likewise.
963         * md5.c (md5_get_info): Likewise.
964         * md4.c (md4_get_info): Likewise.
965         * crc.c (crc_get_info): Likewise.
966
967         * md.c (load_digest_module): Call setup_md_table during
968         initialization.
969         (new_list_item): Link new element into digest_list.
970
971         * cipher.c (do_ctr_decrypt): Made do_ctr_encrypt act as a wrapper
972         for do_ctr_encrypt, since these functions are identical.
973
974 2003-03-30  Simon Josefsson  <jas@extundo.com>
975
976         * cipher.c (struct gcry_cipher_handle): Add counter field.
977         (gcry_cipher_open): Add CTR.
978         (cipher_reset): Clear counter field.
979         (do_ctr_encrypt, do_ctr_decrypt): New functions.
980         (cipher_encrypt, cipher_decrypt): Call CTR functions.
981         (gcry_cipher_ctl): Add SET_CTR to set counter.
982
983 2003-03-30  Moritz Schulte  <moritz@g10code.com>
984
985         * rsa.c (_gcry_rsa_blind): New function.
986         (_gcry_rsa_unblind): New function.
987         (_gcry_rsa_decrypt): Use _gcry_rsa_blind and _gcry_rsa_decrypt.
988
989 2003-03-26  Moritz Schulte  <moritz@g10code.com>
990
991         * dynload.c (_gcry_enum_gnupgext_pubkeys): Adjust `encrypt' and
992         `decrypt' function arguments.
993         (_gcry_enum_gnupgext_pubkeys): Likewise.
994         * dynload.h: Likewise.
995         
996         * pubkey.c (dummy_decrypt): Add argument: int flags.
997         (dummy_encrypt): Likewise.
998
999         * elgamal.c (_gcry_elg_encrypt): Add argument: int flags.
1000         (_gcry_elg_decrypt): Likewise.
1001
1002         * rsa.c (_gcry_rsa_encrypt): Add argument: int flags.
1003         (_gcry_rsa_decrypt): Likewise.
1004
1005         * pubkey.c: Add `flags' argument to members `encrypt' and
1006         `decrypt' of struct `pubkey_table_s'.
1007
1008         * rsa.h: Add `flags' argument to function declarations.
1009         * elgamal.h: Likewise.
1010
1011         * pubkey.c (sexp_data_to_mpi): New variable: int parsed_flags.
1012         (sexp_data_to_mpi): Set `parsed_flags'.
1013         (sexp_data_to_mpi): New argument: int *flags.
1014         (gcry_pk_encrypt): New variable: int flags.
1015         (gcry_pk_encrypt): Pass `flags' to pubkey_encrypt.
1016         (pubkey_encrypt): New variable: int flags.
1017         (pubkey_encrypt): Pass `flags' to pubkey encrypt function.
1018         (pubkey_decrypt): Likewise.
1019         (pubkey_decrypt): Pass `flags' to pubkey encrypt function.
1020         (gcry_pk_encrypt): Include `flags' s-exp in return list.
1021         (sexp_to_enc): New argument: int *flags.
1022         (gcry_pk_decrypt): New variable: int flags.
1023         (gcry_pk_decrypt): Pass `flags' to pubkey_decrypt.
1024         (sexp_to_enc): New variable: int parsed_flags.
1025         (sexp_to_enc): Set `parsed_flags'.
1026
1027 2003-03-22  Simon Josefsson  <jas@extundo.com>
1028
1029         * cipher.c (gcry_cipher_open, do_cbc_encrypt)
1030         (gcry_cipher_encrypt): Support GCRY_CIPHER_CBC_MAC.
1031         (gcry_cipher_ctl): Support GCRYCTL_SET_CBC_MAC.
1032
1033 2003-03-19  Werner Koch  <wk@gnupg.org>
1034
1035         * primegen.c (gen_prime): New args EXTRA_CHECK and EXTRA_CHECK_ARG
1036         to allow for a user callback.  Changed all callers.
1037         (_gcry_generate_secret_prime)
1038         (_gcry_generate_public_prime): Ditto, pass them to gen_prime.
1039         * rsa.c (check_exponent): New.
1040         (generate): Use a callback to ensure that a given exponent is
1041         actually generated.
1042
1043 2003-03-12  Moritz Schulte  <moritz@g10code.com>
1044
1045         * primegen.c: Initialize `no_of_small_prime_numbers' statically.
1046         (gen_prime): Remove calculation of `no_of_small_prime_numbers'.
1047
1048 2003-03-03  Moritz Schulte  <moritz@g10code.com>
1049
1050         * md.c (gcry_md_ctl): Rewritten to use same style like the other
1051         functions dispatchers.
1052
1053 2003-03-02  Moritz Schulte  <moritz@g10code.com>
1054
1055         * cipher.c (struct gcry_cipher_handle): New member: algo_index.
1056         (gcry_cipher_open): Allocate memory for two cipher contexts.
1057         Initialize algo_index.
1058         (cipher_setkey): Duplicate context into reserved memory.
1059         (cipher_reset): New function, which resets the context and clear
1060         the IV.
1061         (gcry_cipher_ctl): Call cipher_reset.
1062
1063 2003-02-23  Moritz Schulte  <moritz@g10code.com>
1064
1065         * cipher.c: Remove (bogus) `digitp' macro definition.
1066         * md.c: Likewise.
1067
1068         * blowfish.c (burn_stack): Removed.
1069         * arcfour.c (burn_stack): Likewise.
1070         * cast5.c (burn_stack): Likewise.
1071         * des.c (burn_stack): Likewise.
1072         * md4.c (burn_stack): Likewise.
1073         * md5.c (burn_stack): Likewise.
1074         * random.c (burn_stack): Likewise.
1075         * rijndael.c (burn_stack): Likewise.
1076         * rmd160.c (burn_stack): Likewise.
1077         * sha1.c (burn_stack): Likewise.
1078         * sha256.c (burn_stack): Likewise.
1079         * tiger.c (burn_stack): Likewise.
1080         * twofish.c (burn_stack): Likewise.
1081
1082         * blowfish.c: Changed all occurences of burn_stack to
1083         _gcry_burn_stack.
1084         * arcfour.c: Likewise.
1085         * cast5.c: Likewise.
1086         * des.c: Likewise.
1087         * md4.c: Likewise.
1088         * md5.c: Likewise.
1089         * random.c: Likewise.
1090         * rijndael.c: Likewise.
1091         * rmd160.c: Likewise.
1092         * sha1.c: Likewise.
1093         * sha256.c: Likewise.
1094         * tiger.c: Likewise.
1095         * twofish.c: Likewise.
1096
1097         * arcfour.c (_gcry_arcfour_get_info): Use GCRY_CIPHER_ARCFOUR
1098         instead of hard-coded value `301'.
1099
1100 2003-01-24  Werner Koch  <wk@gnupg.org>
1101
1102         * random.c (_gcry_register_random_progress): New.
1103         (_gcry_random_progress): New.
1104
1105         * rndlinux.c (gather_random): Call the random progress function. 
1106
1107 2003-01-23  Werner Koch  <wk@gnupg.org>
1108
1109         * rsa.c (generate): New arg USE_E to request a specific public
1110         exponent.
1111         (_gcry_rsa_generate): Ditto.
1112         * elgamal.c (_gcry_elg_generate): Must add an dummy argument
1113         instead of USE_E.
1114         * dsa.c (_gcry_dsa_generate): Ditto.
1115         * pubkey.c (dummy_generate): Ditto.
1116         (pubkey_generate): Add USE_E arg and pass it down.
1117         (gcry_pk_genkey): Detect "rsa-use-e" parameter and pass it to generate.
1118
1119         * pubkey.c (sexp_to_enc): New arg RET_MODERN.
1120         (gcry_pk_decrypt): Make use of it to return a real S-expression.
1121         Return better error codes.
1122         (gcry_pk_verify): Return better error codes.
1123
1124 2003-01-21  Werner Koch  <wk@gnupg.org>
1125
1126         * random.c (gcry_random_add_bytes): Add QUALITY argument, let
1127         function return an error code and disable its core for now.
1128
1129 2003-01-21  Timo Schulz  <twoaday@freakmail.de>
1130
1131         * random.c (gcry_random_add_bytes): New. Function to add external
1132         random to the pool.
1133         
1134 2003-01-20  Simon Josefsson  <jas@extundo.com>
1135
1136         * crc.c: New.
1137         * Makefile.am (EXTRA_PROGRAMS, EXTRA_crc_SOURCES): Add crc.c.
1138         * md.c (gcry_md_get_algo_dlen): Add values for CRC.
1139
1140 2003-01-20  Werner Koch  <wk@gnupg.org>
1141
1142         * sha256.c: New.
1143         * bithelp.h (ror): New.
1144         * Makfile.am: Add sha256.c.
1145         * md.c (oid_table): Add values for SHA256 et al.
1146         (gcry_md_get_algo_dlen): Likewise
1147
1148 2003-01-20  Werner Koch  <wk@gnupg.org>
1149
1150         * pubkey.c (gcry_pk_get_keygrip): Implemented keygrips for DSA
1151         and ElGamal.
1152
1153 2003-01-17  Werner Koch  <wk@gnupg.org>
1154
1155         * cipher.c (gcry_cipher_encrypt): Reworked so that the output will
1156         never contain the plaintext even if the caller did not checked the
1157         return value.
1158
1159         * md.c (gcry_md_get_algo): Changed error code to GCRYERR_GENERAL
1160         because we don't have an invalid md algo but no algorithm enabled.
1161
1162         * pubkey.c (gcry_pk_genkey): Changed error code for bounds check
1163         of table parameters to GCRYERR_INTERNAL.
1164
1165         * md.c (gcry_md_open): Partly reverted Timo's change from
1166         2002-10-10 by removing the check for the algorithm.  An algorithm
1167         of 0 is allowed and anyway we should not double check it or check
1168         it using a different function.  Also fixed the flags check.
1169
1170         * pubkey.c (gcry_pk_encrypt): Make sure that R_CIPH points to NULL
1171         on error.
1172         (gcry_pk_decrypt): Ditto for R_PLAIN.
1173         (gcry_pk_sign): Ditto for R_SIG.
1174         (gcry_pk_genkey): Ditto for R_KEY.
1175
1176 2003-01-16  Werner Koch  <wk@gnupg.org>
1177
1178         * md.c (gcry_md_write): Changed 2nd argument type to void*.
1179         (gcry_md_hash_buffer): Changed type of boths buffers to void*.
1180         (gcry_md_setkey): Changed 2nd argument type to void*.
1181
1182 2003-01-15  Werner Koch  <wk@gnupg.org>
1183
1184         * pubkey.c (sexp_data_to_mpi): New.  This handles pkcs1 padding.
1185         (gcry_pk_sign, gcry_pk_verify): Use it here.
1186         (gcry_pk_encrypt): And here.
1187         (pubkey_verify): Add debug code.
1188         (sexp_to_enc): Handle flags in the input and return the pkcs1 flag
1189         in a new parameter.
1190         (gcry_pk_decrypt): Prepare for future pkcs1 handling.
1191
1192 2002-12-19  Werner Koch  <wk@gnupg.org>
1193
1194         * random.c (_gcry_random_initialize): New.
1195
1196 2002-12-16  Werner Koch  <wk@gnupg.org>
1197
1198         * cipher.c: Added a Tetetrust specific OID for 3DES.
1199
1200 2002-12-12  Werner Koch  <wk@gnupg.org>
1201
1202         * md.c: Added another oddball OIW OID (sha-1WithRSAEncryption).
1203
1204 2002-11-23  Werner Koch  <wk@gnupg.org>
1205
1206         * md.c (load_digest_module): Enlarged checked_algos bitmap.
1207         * md4.c (func_table):  Fixed entry for md4. 
1208         Both by Simon Josephson.
1209         (transform): Copy data to get the alignment straight. Tested only
1210         on i386.
1211
1212 2002-11-10  Simon Josefsson  <jas@extundo.com>
1213
1214         * cipher.c (gcry_cipher_open): Don't reject CTS flag.
1215         (do_cbc_encrypt, do_cbc_decrypt, cipher_encrypt) 
1216         (gcry_cipher_encrypt, cipher_decrypt)
1217         (gcry_cipher_decrypt): Support CTS flag.
1218         (gcry_cipher_ctl): Toggle CTS flag.
1219
1220 2002-11-10  Werner Koch  <wk@gnupg.org>
1221
1222         * md4.c: New. By Simon Josefsson.
1223         * Makefile.am (EXTRA_PROGRAMS): Add md4.c. 
1224         * md.c (oid_table,gcry_md_get_algo_dlen): MD4 support. 
1225
1226 2002-10-14  Werner Koch  <wk@gnupg.org>
1227
1228         * arcfour.c (do_encrypt_stream): Don't use increment op when
1229         assigning to the same variable.
1230
1231 2002-10-10  Timo Schulz  <ts@winpt.org>
1232
1233         * pubkey.c (gcry_pk_genkey): Check boundaries.
1234         
1235         * md.c (gcry_md_open): Check that algo is available and only
1236         valid flag values are used.
1237         (gcry_md_get_algo): Add error handling.
1238         
1239 2002-09-26  Werner Koch  <wk@gnupg.org>
1240
1241         * md.c: Include an OID for TIGER.
1242         * tiger.c (tiger_get_info): Use a regular OID.
1243
1244 2002-09-17  Werner Koch  <wk@gnupg.org>
1245
1246         * random.c: Replaced mutex.h by the new ath.h.  Changed all calls.
1247
1248 2002-09-16  Werner Koch  <wk@gnupg.org>
1249
1250         * arcfour.c (do_encrypt_stream): Use register modifier and modulo.
1251         According to Nikos Mavroyanopoulos this increases perfromace on
1252         i386 system noticable.  And I always tought gcc is clever enough.
1253         * md5.c (transform): Use register modifier.
1254         * rmd160.c (transform): Ditto.
1255         * sha1.c (transform): Ditto.  We hope that there are 6 free registers.
1256         * random.c (gcry_randomize): Rewrote to avoid malloc calls.
1257
1258         * rndlinux.c (gather_random): Replaced remaining fprintfs by log_*.
1259         * arcfour.c (do_arcfour_setkey): Ditto.
1260         * twofish.c (do_twofish_setkey): Ditto.
1261         * rndegd.c (gather_random): Ditto.
1262         * rijndael.c (do_setkey): Ditto.
1263         * random.c (_gcry_random_dump_stats): Ditto. 
1264         * primegen.c (_gcry_generate_elg_prime): Ditto.
1265         * des.c (_gcry_des_get_info): Ditto.
1266         * cast5.c (do_cast_setkey): Ditto.
1267         * blowfish.c (do_bf_setkey): Ditto.
1268
1269 2002-08-26  Werner Koch  <wk@gnupg.org>
1270
1271         * des.c (weak_keys): Fixed one entry in the table and compared
1272         all entries against the literature.
1273         (selftest): Checksum the weak key table.
1274
1275 2002-08-21  Werner Koch  <wk@gnupg.org>
1276
1277         * pubkey.c: Enable keygrip calculation for "openpgp-rsa".
1278
1279 2002-08-17  Werner Koch  <wk@gnupg.org>
1280
1281         * cipher.c (setup_cipher_table): Don't overwrite the DES entry
1282         with the entry for DUMMY.
1283
1284 2002-08-14  Werner Koch  <wk@gnupg.org>
1285
1286         * des.c (do_des_setkey,do_des_encrypt, do_des_decrypt): New.
1287         (_gcry_des_get_info): Support plain old DES.
1288         * cipher.c (setup_cipher_table): Put DES into the table.
1289
1290 2002-07-25  Werner Koch  <wk@gnupg.org>
1291
1292         * rndunix.c (_gcry_rndunix_constructor): Prefixed with _gcry_.
1293         Noted by Stephan Austermuehle.
1294
1295 2002-07-08  Timo Schulz  <ts@winpt.org>
1296
1297         * rndw32.c: Replaced the m_ memory functions with the real 
1298         gcry_ functions. Renamed all g10_ prefixed functions to log_.
1299         
1300 2002-06-12  Werner Koch  <wk@gnupg.org>
1301
1302         * rsa.c (generate): Use e = 65537 for now.
1303
1304 2002-06-11  Werner Koch  <wk@gnupg.org>
1305
1306         * pubkey.c (gcry_pk_get_keygrip): Allow a "protected-private-key".
1307
1308 2002-06-05  Timo Schulz  <ts@winpt.org>
1309
1310         * cipher.c (gcry_cipher_encrypt, gcry_cipher_decrypt):
1311         Check that the input size is a multiple of the blocksize.
1312         
1313 2002-05-23  Werner Koch  <wk@gnupg.org>
1314
1315         * md.c (oid_table): Add an rsadsi OID for MD5.
1316
1317 2002-05-21  Werner Koch  <wk@gnupg.org>
1318
1319         * primegen.c, elgamal.c, dsa.c (progress): Do not print anything
1320         by default.  Pass an extra identifying string to the callback and
1321         reserved 2 argumenst for current and total counters.  Changed the
1322         register function prototype.
1323
1324 2002-05-17  Werner Koch  <wk@gnupg.org>
1325
1326         * rndegd.c (rndegd_constructor): Fixed name of register function
1327         and prefixed the function name with _gcry_.
1328         * rndw32.c (rndw32_constructor): Ditto.
1329         * tiger.c (tiger_constructor): Ditto.
1330
1331         * Makefile.am: Removed all dynamic loading stuff.
1332         * dynload.c: Ditto. Now only used for the constructor system.
1333
1334 2002-05-15  Werner Koch  <wk@gnupg.org>
1335
1336         * random.c (gcry_random_bytes,gcry_random_bytes_secure)
1337         (gcry_randomize): Make sure we are initialized.
1338
1339 2002-05-14  Werner Koch  <wk@gnupg.org>
1340
1341         Changed license of most files to the LGPL.
1342
1343 2002-05-02  Werner Koch  <wk@gnupg.org>
1344
1345         * random.c (_gcry_fast_random_poll): Initialize the module so the
1346         mutex can be used.
1347
1348         * primegen.c (small_prime_numbers): Moved table from smallprime.c
1349         * smallprime.c: Fiel removed.
1350
1351         * des.c (leftkey_swap, rightkey_swap, working_memcmp): Made static.
1352
1353         * cipher.c (gcry_cipher_map_name): Map "RIJNDAEL" to "AES".
1354         * rijndael.c (rijndael_get_info): We do only support a 128 bit
1355         blocksize so it makes sense to change the algorithm strings to
1356         AES.
1357
1358         * tiger.c (tiger_final): Removed superfluous token pasting operators.
1359         * md5.c (md5_final): Ditto.
1360
1361 2002-04-30  Werner Koch  <wk@gnupg.org>
1362
1363         * cipher.c: Fixed list of copyright years.
1364
1365 2002-03-18  Werner Koch  <wk@gnupg.org>
1366
1367         * random.c (initialize): Initialize the new pool lock mutex.
1368         (_gcry_fast_random_poll): Add locking and moved main
1369         code out to...
1370         (do_fast_random_poll): new function.
1371         (read_pool): Use the new function here.
1372         (get_random_bytes): Add locking.
1373         (_gcry_update_random_seed_file): Ditto.
1374
1375 2002-03-11  Werner Koch  <wk@gnupg.org>
1376
1377         * md.c: Add rsaSignatureWithripemd160 to OID table.
1378
1379 2002-02-20  Werner Koch  <wk@gnupg.org>
1380
1381         * sha1.c: Removed a left over comment note.  The code has been
1382         rewritten from scratch in 1998.  Thanks to Niels Möller for
1383         reporting this misleading comment.
1384
1385 2002-02-18  Werner Koch  <wk@gnupg.org>
1386
1387         * rndunix.c (rndunix_constructor): Use the the new prefixed
1388         function name.  Reported by Jordi Mallach.
1389
1390 2002-02-10  Werner Koch  <wk@gnupg.org>
1391
1392         * random.c (mix_pool): Carry an extra failsafe_digest buffer
1393         around to make the function more robust.
1394
1395 2002-02-08  Werner Koch  <wk@gnupg.org>
1396
1397         * random.c (add_randomness): Xor new data into the pool and not
1398         just copy it.  This avoids any choosen input attacks which are not
1399         serious in our setting because an outsider won't be able to mix
1400         data in and even then we keep going with a PRNG.  Thanks to Stefan
1401         Keller for pointing this out.
1402
1403 2002-01-04  Werner Koch  <wk@gnupg.org>
1404
1405         * pubkey.c (gcry_pk_genkey): Do not release skey - it is static.
1406
1407         * primegen.c (gen_prime): Of course we should use set_bit
1408         and not set_highbit to set the second high bit.
1409
1410 2001-12-18  Werner Koch  <wk@gnupg.org>
1411
1412         * rsa.c (generate): Loop until we find the exact modulus size.
1413         Changed the exponent to 41.
1414         (rsa_get_info): s/usage/r_usage/ to avoid shadow warnings.
1415         * primegen.c (gen_prime): Set 2 high order bits for secret primes.
1416
1417         * Makefile.am (DISTCLEANFILES): Include construct.c.
1418
1419 2001-12-17  Werner Koch  <wk@gnupg.org>
1420
1421         * pubkey.c (gcry_pk_get_keygrip): New - experimental.
1422
1423 2001-12-11  Werner Koch  <wk@gnupg.org>
1424
1425         * cipher.c: Added OIDs for AES.
1426         (gcry_cipher_mode_from_oid): New.
1427         (gcry_cipher_map_name): Moved OID search code to ..
1428         (search_oid): .. new function.
1429
1430 2001-12-10  Werner Koch  <wk@gnupg.org>
1431
1432         * pubkey.c (gcry_pk_encrypt): Find the signature algorithm by name
1433         and not by number.
1434         
1435         * pubkey.c (gcry_pk_encrypt,gcry_pk_decrypt,gcry_pk_sign)
1436         (gcry_pk_verify,gcry_pk_testkey, gcry_pk_genkey)
1437         (gcry_pk_get_nbits): Release the arrays.  Noted by Nikos
1438         Mavroyanopoulos.
1439
1440 2001-12-06  Werner Koch  <wk@gnupg.org>
1441
1442         * cipher.c (gcry_cipher_map_name): Look also for OIDs prefixed
1443         with "oid."  or "OID.".
1444
1445 2001-12-05  Werner Koch  <wk@gnupg.org>
1446
1447         * pubkey.c (algo_info_table): Fixed entry for openpgp-rsa. 
1448
1449 2001-11-24  Werner Koch  <wk@gnupg.org>
1450
1451         * pubkey.c: Added the rsaEncryption OID to the tables.
1452         (sexp_to_key): Add an arg to return the index of the algorithm,
1453         changed all callers.
1454         (gcry_pk_sign): Find the signature algorithm by name and not by
1455         number.
1456         (gcry_pk_get_nbits): Fixed so that we can now really pass a secret
1457         key to get the result.
1458         
1459         * md.c (gcry_md_map_name): Look also for OIDs prefixed with "oid."
1460         or "OID." so that an OID string can be used as an S-Exp token.
1461
1462 2001-11-20  Werner Koch  <wk@gnupg.org>
1463
1464         * md.c (gcry_md_map_name): Lookup by OID if the the name begins
1465         with a digit.
1466         (oid_table): New.
1467         
1468 2001-11-16  Werner Koch  <wk@gnupg.org>
1469
1470         * md.c (gcry_md_info): New operator GCRYCTL_IS_ALGO_ENABLED.
1471
1472 2001-11-07  Werner Koch  <wk@gnupg.org>
1473
1474         * md.c (gcry_md_hash_buffer): Close the handle which was left open
1475         for algorithms other than rmd160.
1476
1477 2001-08-08  Werner Koch  <wk@gnupg.org>
1478
1479         * rndw32.c (gather_random): Use toolhelp in addition to the NT
1480         gatherer for Windows2000.  Suggested by Sami Tolvanen.
1481
1482         * random.c (read_pool): Fixed length check, this used to be one
1483         byte to strict.  Made an assert out of it because the caller has
1484         already made sure that only poolsize bytes are requested.
1485         Reported by Marcus Brinkmann.
1486
1487 2001-08-03  Werner Koch  <wk@gnupg.org>
1488
1489         * cipher.c (cipher_encrypt, cipher_decrypt): Prepare to return
1490         errors. We have to change the interface to all ciphers to make
1491         this really work but we should do so to prepare for hardware
1492         encryption modules.
1493         (gcry_cipher_encrypt, gcry_cipher_decrypt): Return the error and
1494         set lasterr. 
1495         (gcry_cipher_ctl): Make sure that errors from setkey are returned.
1496
1497 2001-08-02  Werner Koch  <wk@gnupg.org>
1498
1499         * rndlinux.c (gather_random): casted a size_t arg to int so that
1500         the format string is correct.  Casting is okay here and avoids
1501         translation changes. 
1502
1503         * random.c (fast_random_poll): Do not check the return code of
1504         getrusage.
1505
1506         * rndunix.c: Add a signal.h header to avoid warnings on Solaris 7
1507         and 8.
1508
1509         * tiger.c (print_abc,print_data): Removed.
1510
1511         * rijndael.c, des.c, blowfish.c, twofish.c, cast5.c, arcfour.c
1512         (burn_stack): New.  Add wrappers for most functions to be able to
1513         call burn_stack after the function invocation. This methods seems
1514         to be the most portable way to zeroise the stack used. It does
1515         only work on stack frame based machines but it is highly portable
1516         and has no side effects.  Just setting the automatic variables at
1517         the end of a function to zero does not work well because the
1518         compiler will optimize them away - marking them as volatile would
1519         be bad for performance.
1520         * md5.c, sha1.c, rmd160.c, tiger.c (burn_stack): Likewise.
1521         * random.c (burn_stack): New.
1522         (mix_pool): Use it here to burn the stack of the mixblock function.
1523
1524         * primegen.c (_gcry_generate_elg_prime): Freed q at 3 places.
1525         Thanks to Tommi Komulainen.
1526
1527         * arcfour.c (arcfour_setkey): Check the minimim keylength against
1528         bytes and not bits.
1529         (selftest): Must reset the key before decryption. 
1530
1531 2001-05-31  Werner Koch  <wk@gnupg.org>
1532
1533         * sha1.c (sha1_init): Made static.
1534
1535         Changed all g10_ prefixed function names as well as some mpi_
1536         function names to cope with the introduced naming changes.
1537         
1538         * md.c (prepare_macpads): Made key const.
1539
1540 2001-05-28  Werner Koch  <wk@gnupg.org>
1541
1542         * rndegd.c (gather_random): Removed the use of tty_printf.
1543
1544 2001-03-29  Werner Koch  <wk@gnupg.org>
1545
1546         * md5.c (md5_final): Fixed calculation of hashed length.  Thanks
1547         to disastry@saiknes.lv for pointing out that it was horrible wrong
1548         for more than 512MB of input.
1549         * sha1.c (sha1_final): Ditto.
1550         * rmd160.c (rmd160_final): Ditto.
1551         * tiger.c (tiger_final): Ditto.
1552
1553         * blowfish.c (encrypt,do_encrypt): Changed name to do_encrypt to
1554         avoid name clashes with an encrypt function in stdlib.h of
1555         Dynix/PIX.  Thanks to Gene Carter.
1556         * elgamal.c (encrypt,do_encrypt): Ditto.
1557
1558         * twofish.c (gnupgext_enum_func): Use only when when compiled as a
1559         module.
1560         * rijndael.c (gnupgext_enum_func): Ditto.
1561
1562         * tiger.c (tiger_get_info): Return "TIGER192" and not just
1563         "TIGER".  By Edwin Woudt.
1564         
1565         * random.c: Always include time.h - standard requirement.  Thanks
1566         to James Troup.
1567
1568         * rndw32.c: Fixes to the macros.
1569
1570 2001-01-11  Werner Koch  <wk@gnupg.org>
1571
1572         * cipher.c (cipher_encrypt,gcry_cipher_encrypt): Use blocksize and
1573         not 8.
1574
1575 2000-12-19  Werner Koch  <wk@gnupg.org>
1576
1577         Major change:
1578         Removed all GnuPG stuff and renamed this piece of software
1579         to gcrypt. 
1580
1581 2000-11-14  Werner Koch  <wk@gnupg.org>
1582
1583         * dsa.c (test_keys): Replaced mpi_alloc by gcry_mpi_new and
1584         mpi_free by gcry_mpi_release.
1585         * elgamal.c (test_keys,generate): Ditto, also for mpi_alloc_secure.
1586         * rsa.c (test_keys,generate,rsa_verify): Ditto.
1587         * primegen.c (generate_elg_prime): Ditto.
1588         (gen_prime): Ditto and removed nlimbs.
1589
1590         * rsa.c (generate): Allocate 2 more vars in secure memory.
1591
1592         * Makefile.am (OMIT_DEPENDENCIES): Hack to work around dependency
1593         problems.
1594
1595 2000-10-09  Werner Koch  <wk@gnupg.org>
1596
1597         * arcfour.c, arcfour.h: New.
1598         * cipher.c (cipher_encrypt, cipher_decrypt): Add stream mode.
1599         (setup_cipher_table): Add Arcfour.
1600         (gcry_cipher_open): Kludge to allow stream mode.
1601
1602 Wed Oct  4 13:16:18 CEST 2000  Werner Koch  <wk@openit.de>
1603
1604         * sha1.c (transform): Use rol() macro.  Actually this is not needed
1605         for a newer gcc but there are still aoter compilers.
1606
1607         * rsa.c (test_keys): Use new random function. 
1608
1609         * md.c (gcry_md_setkey): New function to overcome problems with
1610         const conflics.  
1611         (gcry_md_ctl): Pass set key to the new functions.
1612
1613         * rijndael.c: New.
1614         * cipher.c: Add Rijndael support.
1615
1616 Mon Sep 18 16:35:45 CEST 2000  Werner Koch  <wk@openit.de>
1617
1618         * rndlinux.c (open_device): Loose random device checking.
1619         By Nils Ellmenreich.
1620
1621         * random.c (fast_random_poll): Check ENOSYS for getrusage.
1622         * rndunix.c:  Add 2 sources for QNX. By Sam Roberts.
1623
1624         * pubkey.c (gcry_pk_algo_info): Add GCRYCTL_GET_ALGO_USAGE.
1625
1626         * rsa.c: Changed the comment about the patent.
1627         (secret): Speed up by using the CRT.  For a 2k keys this
1628         is about 3 times faster.
1629         (stronger_key_check): New but unused code to check the secret key.
1630         * Makefile.am: Included rsa.[ch].
1631         * pubkey.c: Enabled RSA support.
1632         (pubkey_get_npkey): Removed RSA workaround.
1633
1634 Mon Jul 31 10:04:47 CEST 2000  Werner Koch  <wk@openit.de>
1635
1636   * pubkey.c: Replaced all gcry_sexp_{car,cdr}_{data,mpi} by the new
1637   gcry_sexp_nth_{data,mpi} functions.
1638
1639 Tue Jul 25 17:44:15 CEST 2000  Werner Koch  <wk@openit.de>
1640
1641   * pubkey.c (exp_to_key,sexp_to_sig,sexp_to_enc,gcry_pk_encrypt,
1642     gcry_pk_decrypt,gcry_pk_sign,gcry_pk_genkey): Changed to work with
1643     the new S-Exp interface.
1644
1645 Mon Jul 17 16:35:47 CEST 2000  Werner Koch  <wk@>
1646
1647   * random.c (gather_faked): Replaced make_timestamp by time(2) again.
1648
1649 Fri Jul 14 19:38:23 CEST 2000  Werner Koch  <wk@>
1650
1651   * md.c (gcry_md_ctl): Support GCRYCTL_{START,STOP}_DUMP.
1652
1653   * Makefile.am: Never compile mingw32 as module.
1654
1655   * Makefile.am: Tweaked module build and removed libtool
1656
1657   * Makefile.am:  Replaced -O1 by -O. Suggested by Alec Habig.
1658
1659   * elgamal.c (sign): Removed inactive code.
1660
1661   * rsa.c, rsa.h: New based on the old module version (only in CVS for now).
1662   * pubkey.c (setup_pubkey_table): Added commented support for RSA.
1663
1664   * rndunix.c (waitpid): New. For UTS 2.1.  All by Dave Dykstra.
1665   (my_popen): Do the FD_CLOEXEC only if it is available
1666   (start_gatherer): Cope with missing _SC_OPEN_MAX
1667
1668   * rndunix.c: Add some more headers for QNX. By Sam Roberts.
1669
1670   * rndegd.c (gather_random): Shortcut level 0.
1671   * rndunix.c (gather_random): Ditto.
1672   * rndw32.c (gather_random): Ditto.
1673
1674   * rndw32.c: Replaced with code from Cryptlib and commented the old stuff.
1675   * rndw32.c: Add some debuging code enabled by an environment variable.
1676
1677   * random.c (read_seed_file): Binary open for DOSish system
1678   (update_random_seed_file): Ditto.
1679   * random.c [MINGW32]: Include process.h for getpid.
1680   * random.c (fast_random_poll): Add clock_gettime() as fallback for
1681   system which support this POSIX.4 fucntion. By Sam Roberts.
1682
1683   * random.c (read_seed_file): Removed the S_ISLNK test becuase it
1684   is already covered by !S_ISREG and is not defined in Unixware.
1685   Reported by Dave Dykstra.
1686   (update_random_seed_file): Silently ignore update request when pool
1687   is not filled.
1688
1689   * random.c (read_seed_file): New.
1690   (set_random_seed_file): New.
1691   (read_pool): Try to read the seeding file.
1692   (update_random_seed_file): New.
1693
1694   (read_pool): Do an initial extra seeding when level 2 quality random
1695   is requested the first time.  This requestes at least POOLSIZE/2 bytes
1696   of entropy.  Compined with the seeding file this should make normal
1697   random bytes cheaper and increase the quality of the random bytes
1698   used for key generation.
1699
1700   * random.c (read_pool): Print a more friendly error message in
1701   cases when too much random is requested in one call.
1702
1703   * random.c (fast_random_poll): Check whether RUSAGE_SELF is defined;
1704   this is not the case for some ESIX and Unixware, although they have
1705   getrusage().
1706
1707   * primegen.c (generate_elg_prime): All primes are now generated with
1708   the lowest random quality level.  Because they are public anyway we
1709   don't need stronger random and by this we do not drain the systems
1710   entropy so much.
1711
1712   * primegen.c (register_primegen_progress): New.
1713   * dsa.c (register_pk_dsa_progress): New.
1714   * elgamal.c (register_pk_elg_progress): New.
1715
1716   * elgamal.c (wiener_map): New.
1717   (gen_k): Use a much smaller k.
1718   (generate): Calculate the qbits using the wiener map and
1719   choose an x at a size comparable to the one choosen in gen_k
1720
1721   * rmd160.c (rmd160_get_info): Moved casting to the left side due to a
1722   problem with UTS4.3.  Suggested by Dave Dykstra.
1723   * sha1.c (sha1_get_info): Ditto.
1724   * tiger.c (tiger_get_info): Ditto.
1725   * md5.c (md5_get_info): Ditto
1726   * des.c (des_get_info): Ditto.
1727   * blowfish.c (blowfish_get_info): Ditto.
1728   * cast5.c (cast5_get_info): Ditto.
1729   * twofish.c (twofish_get_info): Ditto.
1730
1731 Fri Mar 24 11:25:45 CET 2000  Werner Koch  <wk@openit.de>
1732
1733         * md.c (md_open): Add hmac arg and allocate space for the pads.
1734         (md_finalize): Add HMAC support.
1735         (md_copy): Ditto.
1736         (md_close): Ditto.
1737         (gcry_md_reset): Ditto.
1738         (gcry_md_ctl): Ditto.
1739         (prepare_macpdas): New.
1740
1741 Mon Mar 13 19:22:46 CET 2000  Werner Koch  <wk@openit.de>
1742
1743         * md.c (gcry_md_hash_buffer): Add support for the other algorithms.
1744
1745 Mon Jan 31 16:37:34 CET 2000  Werner Koch  <wk@gnupg.de>
1746
1747         * genprime.c (generate_elg_prime): Fixed returned factors which never
1748         worked for non-DSA keys.
1749
1750 Thu Jan 27 18:00:44 CET 2000  Werner Koch  <wk@gnupg.de>
1751
1752         * pubkey.c (sexp_to_key): Fixed mem leaks in case of errors.
1753
1754 Mon Jan 24 22:24:38 CET 2000  Werner Koch  <wk@gnupg.de>
1755
1756         * pubkey.c (gcry_pk_decrypt): Implemented.
1757         (gcry_pk_encrypt): Implemented.
1758         (gcry_pk_testkey): New.
1759         (gcry_pk_genkey): New.
1760         (pubkey_decrypt): Made static.
1761         (pubkey_encrypt): Ditto.
1762         (pubkey_check_secret_key): Ditto.
1763         (pubkey_generate): Ditto.
1764
1765 Mon Jan 24 13:04:28 CET 2000  Werner Koch  <wk@gnupg.de>
1766
1767         * pubkey.c (pubkey_nbits): Removed and replaced by ...
1768         (gcry_pk_get_nbits): this new one.
1769
1770 Wed Dec  8 21:58:32 CET 1999  Werner Koch  <wk@gnupg.de>
1771
1772         * dsa.c: s/mpi_powm/gcry_mpi_powm/g
1773         * elgamal.c: Ditto.
1774         * primegen.c: Ditto.
1775
1776         * : Replaced g10_opt_verbose by g10_log_verbosity().
1777
1778         * Makefile.am (INCLUDES): removed intl, add ../gcrypt
1779
1780 Fri Nov 19 17:15:20 CET 1999  Werner Koch  <wk@gnupg.de>
1781
1782         * dynload.c (cmp_filenames): New to replaced compare_filename() in
1783         module.
1784         (register_cipher_extension): Removed the tilde expansion stuff.
1785         * rndeg.c (my_make_filename): New.
1786
1787         * : Replaced header util.h by g10lib.h
1788
1789         * random.c (gather_faked): Replaced make_timestamp by time(2).
1790         Disabled wrning printed with tty_printf.
1791         * rndlinux.c (gather_random): Always use fprintf instead of tty_xxx;
1792         this should be replaced by a callback function.
1793
1794         * primegen.c (gen_prime): Use gcry_mpi_randomize.
1795         (is_prime): Ditto.
1796         * elgamal.c (test_keys): Ditto.
1797         * dsa.c (test_keys): Ditto.
1798
1799         * cipher.c (gcry_cipher_close): Die on invalid handle.
1800
1801 Mon Nov 15 21:36:02 CET 1999  Werner Koch  <wk@gnupg.de>
1802
1803         * elgamal.c (gen_k): Use the new random API.
1804         (generate): Ditto.
1805         * dsa.c (gen_k): Ditto.
1806         (generate): Ditto.
1807
1808 Sat Nov 13 17:44:23 CET 1999  Werner Koch  <wk@gnupg.de>
1809
1810         * pubkey.c (disable_pubkey_algo): Made static.
1811         (gcry_pk_ctl): New.
1812
1813         * random.c (get_random_bits): Renamed to ...
1814         (get_random_bytes): ... this and made static.
1815         (gcry_random_bytes): New.
1816         (gcry_random_bytes_secure): New.
1817         (randomize_buffer): Renamed to ...
1818         (gcry_randomize): ...this.
1819
1820         * md.c (gcry_md_hash_buffer): New.
1821
1822         * pubkey.c (gcry_pk_algo_info): 4 new commands.
1823         (pubkey_get_npkey): Made static.
1824         (pubkey_get_nskey): Made static.
1825         (pubkey_get_nsig): Made static.
1826         (pubkey_get_nenc): Made static.
1827
1828         * pubkey.c: Removed all G10ERR_xxx.
1829         * cipher.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_CIPHER_ALGO.
1830         * md.c: Changed all GCRYERR_INV_ALGO to GCRYERR_INV_MD_ALGO.
1831         * cast5.c (cast_setkey): Changed errocodes to GCRYERR_xxx.
1832         * blowfish.c: Ditto.
1833         * des.c: Ditto.
1834         * twofish.c: Ditto.
1835         * dsa.c: Ditto.
1836         * elgamal.c: Ditto.
1837
1838         * g10c.c: Removed
1839
1840         * cipher.c (gcry_cipher_open): Replaced alloc functions and return NULL
1841         if we are out of core.
1842         * dynload.c: Replaced all memory allocation functions.
1843         * md.c: Ditto.
1844         * primegen.c: Ditto.
1845         * pubkey.c: Ditto.
1846         * random.c: Ditto.
1847         * rndw32.c: Ditto.
1848         * elgamal.c: Ditto.
1849         * dsa.c: Ditto.
1850
1851 Tue Oct 26 14:10:21 CEST 1999  Werner Koch  <wk@gnupg.de>
1852
1853         * elgamal.c (sign): Hugh found strange code here. Replaced by BUG().
1854
1855         * cipher.c: Merged with gcrypt/symapi.c.
1856
1857         * pubkey.c (string_to_pubkey_algo): Renamed function to ...
1858         (gcry_pk_map_name): ... this.
1859         (pubkey_algo_to_string): Renamed function to ...
1860         (gcry_pk_algo_name): ... this.
1861         (gcry_pk_algo_info): New.
1862         * pubkey.c: Merged with gcrypt/pkapi.c.
1863
1864         * md.c (md_reset): Clear finalized; thanks to Ulf Moeller for
1865         fixing this bug.
1866
1867         * md.c: Merged with gcrypt/mdapi.c
1868
1869 Wed Sep 15 14:39:59 CEST 1999  Michael Roth <mroth@nessie.de>
1870
1871         * des.c: Various speed improvements: One bit pre rotation
1872           trick after initial permutation (Richard Outerbridge).
1873           Finished test of SSLeay Tripple-DES patterns.
1874
1875 Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1876
1877         * rndw32.c: New.
1878
1879 Mon Sep 13 10:51:29 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1880
1881         * bithelp.h: New.
1882         * rmd160.h, sha1.h, md5.h: Use the rol macro from bithelp.h
1883
1884 Tue Sep  7 16:23:36 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1885
1886         * Makefile.am: Fixed seds for latest egcc. By Ollivier Robert.
1887
1888 Mon Sep  6 19:59:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1889
1890         * des.c (selftest): Add some testpattern
1891
1892 Mon Aug 30 20:38:33 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1893
1894         * cipher.c (do_cbc_encrypt): Fixed serious bug occuring when not using
1895         in place encryption. Pointed out by Frank Stajano.
1896
1897 Mon Jul 26 09:34:46 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1898
1899         * md5.c (md5_final): Fix for a SCO cpp bug.
1900
1901 Thu Jul 15 10:15:35 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1902
1903         * elgamal.c (elg_check_secret_key,elg_encrypt
1904         elg_decrypt,elg_sign,elg_verify): Sanity check on the args.
1905         * dsa.c (dsa_check_secret_key,dsa_sign,dsa_verify): Ditto.
1906
1907         * pubkey.c (disable_pubkey_algo): New.
1908         (check_pubkey_algo2): Look at disabled algo table.
1909         * cipher.c (disable_cipher_algo): New.
1910         (check_cipher_algo): Look at disabled algo table.
1911
1912 Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1913
1914         * Makefile.am: Support for libtool.
1915
1916 Fri Jul  2 11:45:54 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1917
1918         * dsa.c (gen_k): Changed algorithm to consume less random bytes
1919         * elgamal.c (gen_k): Ditto.
1920
1921         * random.c (random_dump_stats): New.
1922
1923 Thu Jul  1 12:47:31 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1924
1925         * primegen.c, elgamal.c, dsa.c (progess): New and replaced all
1926         fputc with a call to this function.
1927
1928 Sat Jun 26 12:15:59 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1929
1930         * rndegd.c (do_write): s/ssize_t/int/ due to SunOS 4.1 probs.
1931
1932         * cipher.c (do_cbc_encrypt, do_cbc_decrypt): New.
1933
1934         * dynload.c (HAVE_DL_SHL_LOAD): Map hpux API to dlopen (Dave Dykstra).
1935         * Makefile.am (install-exec-hook): Removed.
1936
1937 Sun May 23 14:20:22 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1938
1939         * cipher.c (setup_cipher_table): Enable Twofish
1940
1941         * random.c (fast_random_poll): Disable use of times() for mingw32.
1942
1943 Mon May 17 21:54:43 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1944
1945         * dynload.c (register_internal_cipher_extension): Minor init fix.
1946
1947 Tue May  4 15:47:53 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1948
1949         * primegen.c (gen_prime): Readded the Fermat test. Fixed the bug
1950         that we didn't correct for step when passing the prime to the
1951         Rabin-Miller test which led to bad performance (Stefan Keller).
1952         (check_prime): Add a first Fermat test.
1953
1954 Sun Apr 18 10:11:28 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1955
1956         * cipher.c (cipher_setiv): Add ivlen arg, changed all callers.
1957
1958         * random.c (randomize_buffer): alway use secure memory because
1959         we can't use m_is_secure() on a statically allocated buffer.
1960
1961         * twofish.c: Replaced some macros by a loop to reduce text size.
1962         * Makefile.am (twofish): No more need for sed editing.
1963
1964 Fri Apr  9 12:26:25 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1965
1966         * cipher.c (cipher_open): Reversed the changes for AUTO_CFB.
1967
1968         * blowfish.c: Dropped the Blowfish 160 mode.
1969         * cipher.c (cipher_open): Ditto.
1970         (setup_cipher_table): Ditto.  And removed support of twofish128
1971
1972 Wed Apr  7 20:51:39 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1973
1974         * random.c (get_random_bits): Can now handle requests > POOLSIZE
1975
1976         * cipher.c (cipher_open): Now uses standard CFB for automode if
1977         the blocksize is gt 8 (according to rfc2440).
1978
1979         * twofish.c: Applied Matthew Skala's patches for 256 bit key.
1980
1981 Tue Apr  6 19:58:12 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
1982
1983         * random.c (get_random_bits): Can now handle requests > POOLSIZE
1984
1985         * cipher.c (cipher_open): Now uses standard CFB for automode if
1986         the blocksize is gt 8 (according to rfc2440).
1987
1988 Sat Mar 20 11:44:21 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1989
1990         * rndlinux.c (tty_printf) [IS_MODULE]: Removed.
1991
1992         * rndegd.c (gather_random): Some fixes.
1993
1994 Wed Mar 17 13:09:03 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
1995
1996         * rndegd.c (do_read): New.
1997         (gather_random): Changed the implementation.
1998
1999 Mon Mar  8 20:47:17 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2000
2001         * dynload.c (DLSYM_NEEDS_UNDERSCORE): Renamed.
2002
2003 Fri Feb 26 17:55:41 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2004
2005         * md.c: Nearly a total rewrote.
2006
2007 Wed Feb 24 11:07:27 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2008
2009         * cipher.c (context): Fixed alignment
2010         * md.c: Ditto.
2011
2012         * rndegd.c: New
2013
2014 Mon Feb 22 20:04:00 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2015
2016         * rndegd.c: New.
2017
2018 Wed Feb 10 17:15:39 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2019
2020         * Makefile.am: Modules are now figured out by configure
2021         * construct.c: New. Generated by configure. Changed all modules
2022         to work with that.
2023         * sha1.h: Removed.
2024         * md5.h: Removed.
2025
2026         * twofish.c: Changed interface to allow Twofish/256
2027
2028         * rndunix.c (start_gatherer): Die on SIGPIPE.
2029
2030 Wed Jan 20 18:59:49 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2031
2032         * rndunix.c (gather_random): Fix to avoid infinite loop.
2033
2034 Sun Jan 17 11:04:33 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2035
2036         * des.c (is_weak_key): Replace system memcmp due to bugs
2037         in SunOS's memcmp.
2038         (des_get_info): Return error on failed selftest.
2039         * twofish.c (twofish_setkey): Return error on failed selftest or
2040         invalid keylength.
2041         * cast5.c (cast_setkey): Ditto.
2042         * blowfish.c (bf_setkey): Return error on failed selftest.
2043
2044 Tue Jan 12 11:17:18 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2045
2046         * random.c (random_is_faked): New.
2047
2048         * tiger.c: Only compile if we have the u64 type
2049
2050 Sat Jan  9 16:02:23 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2051
2052         * rndunix.c (gather_random): check for setuid.
2053
2054         * Makefile.am: Add a way to staically link random modules
2055
2056 Thu Jan  7 18:00:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2057
2058         * md.c (md_stop_debug): Do a flush first.
2059         (md_open): size of buffer now depends on the secure parameter
2060
2061 Sun Jan  3 15:28:44 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
2062
2063         * rndunix.c (start_gatherer): Fixed stupid ==/= bug
2064
2065 1998-12-31  Geoff Keating  <geoffk@ozemail.com.au>
2066
2067         * des.c (is_weak_key): Rewrite loop end condition.
2068
2069 Tue Dec 29 14:41:47 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2070
2071         * random.c: add unistd.h for getpid().
2072         (RAND_MAX): Fallback value for Sun.
2073
2074 Wed Dec 23 17:12:24 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2075
2076         * md.c (md_copy): Reset debug.
2077
2078 Mon Dec 14 21:18:49 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2079
2080         * random.c (read_random_source): Changed the interface to the
2081         random gathering function.
2082         (gather_faked): Use new interface.
2083         * dynload.c (dynload_getfnc_fast_random_poll): Ditto.
2084         (dynload_getfnc_gather_random): Ditto.
2085         * rndlinux.c (gather_random): Ditto.
2086         * rndunix.c (gather_random): Ditto.
2087
2088 Sat Dec 12 18:40:32 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2089
2090         * dynload.c (SYMBOL_VERSION): New to cope with system which needs
2091         underscores.
2092
2093         * rndunix.c: Rewrote large parts
2094
2095 Thu Dec 10 20:15:36 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
2096
2097         * dynload.c (load_extension): increased needed verbosity level.
2098
2099         * random.c (fast_random_poll): Fallback to a default fast random
2100         poll function.
2101         (read_random_source): Always use the faked entroy gatherer if no
2102         gather module is available.
2103         * rndlinux.c (fast_poll): Removed.
2104         * rndunix.c (fast_poll): Removed.
2105
2106
2107 Wed Nov 25 12:33:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
2108
2109         * rand-*.c: Removed.
2110         * rndlinux.c : New.
2111         * rndunix.c : New.
2112         * random.c : Restructured the interface to the gather modules.
2113         (intialize): Call constructor functions
2114         (read_radnom_source): Moved to here.
2115         * dynload.c (dynload_getfnc_gather_random): New.
2116         (dynload_getfnc_fast_random_poll): New.
2117         (register_internal_cipher_extension): New.
2118         (register_cipher_extension): Support of internal modules.
2119
2120 Sun Nov  8 17:44:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
2121
2122         * rand-unix.c (read_random_source): Removed the assert.
2123
2124 Mon Oct 19 18:34:30 1998  me,,,  (wk@tobold)
2125
2126         * pubkey.c: Hack to allow us to give some info about RSA keys back.
2127
2128 Thu Oct 15 11:47:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
2129
2130         * dynload.c: Support for DLD
2131
2132 Wed Oct 14 12:13:07 1998  Werner Koch  (wk@isil.d.shuttle.de)
2133
2134         * rand-unix.c: Now uses names from configure for /dev/random.
2135
2136 1998-10-10  SL Baur  <steve@altair.xemacs.org>
2137
2138         * Makefile.am: fix sed -O substitutions to catch -O6, etc.
2139
2140 Tue Oct  6 10:06:32 1998  Werner Koch  (wk@isil.d.shuttle.de)
2141
2142         * rand-unix.c (HAVE_GETTIMEOFDAY): Fixed (was ..GETTIMEOFTIME :-)
2143         * rand-dummy.c (HAVE_GETTIMEOFDAY): Ditto.
2144
2145 Mon Sep 28 13:23:09 1998  Werner Koch  (wk@isil.d.shuttle.de)
2146
2147         * md.c (md_digest): New.
2148         (md_reset): New.
2149
2150 Wed Sep 23 12:27:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
2151
2152         * tiger.c (TIGER_CONTEXT): moved "buf", so that it is 64 bit aligned.
2153
2154 Mon Sep 21 06:22:53 1998  Werner Koch  (wk@(none))
2155
2156         * des.c: Some patches from Michael.
2157
2158 Thu Sep 17 19:00:06 1998  Werner Koch  (wk@(none))
2159
2160         * des.c : New file from Michael Roth <mroth@nessie.de>
2161
2162 Mon Sep 14 11:10:55 1998  Werner Koch  (wk@(none))
2163
2164         * blowfish.c (bf_setkey): Niklas Hernaeus patch to detect weak keys.
2165
2166 Mon Sep 14 09:19:25 1998  Werner Koch  (wk@(none))
2167
2168         * dynload.c (RTLD_NOW): Now defined to 1 if it is undefined.
2169
2170 Mon Sep  7 17:04:33 1998  Werner Koch  (wk@(none))
2171
2172         * Makefile.am: Fixes to allow a different build directory
2173
2174 Thu Aug  6 17:25:38 1998  Werner Koch,mobil,,,  (wk@tobold)
2175
2176         * random.c (get_random_byte): Removed and changed all callers
2177         to use get_random_bits()
2178
2179 Mon Jul 27 10:30:22 1998  Werner Koch  (wk@(none))
2180
2181         * cipher.c : Support for other blocksizes
2182         (cipher_get_blocksize): New.
2183         * twofish.c: New.
2184         * Makefile.am: Add twofish module.
2185
2186 Mon Jul 13 21:30:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
2187
2188         * random.c (read_pool): Simple alloc if secure_alloc is not set.
2189         (get_random_bits): Ditto.
2190
2191 Thu Jul  9 13:01:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
2192
2193         * dynload.c (load_extension): Function now nbails out if
2194         the program is run setuid.
2195
2196 Wed Jul  8 18:58:23 1998  Werner Koch  (wk@isil.d.shuttle.de)
2197
2198         * rmd160.c (rmd160_hash_buffer): New.
2199
2200 Thu Jul  2 10:50:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
2201
2202         * cipher.c (cipher_open): algos >=100 use standard CFB
2203
2204 Thu Jun 25 11:18:25 1998  Werner Koch  (wk@isil.d.shuttle.de)
2205
2206         * Makefile.am: Support for extensions
2207
2208 Thu Jun 18 12:09:38 1998  Werner Koch  (wk@isil.d.shuttle.de)
2209
2210         * random.c (mix_pool): simpler handling for level 0
2211
2212 Mon Jun 15 14:40:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
2213
2214         * tiger.c: Removed from dist, will reappear as dynload module
2215
2216 Sat Jun 13 14:16:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
2217
2218         * pubkey.c: Major changes to allow extensions. Changed the inteface
2219         of all public key ciphers and added the ability to load extensions
2220         on demand.
2221
2222         * misc.c: Removed.
2223
2224 Wed Jun 10 07:52:08 1998  Werner Koch,mobil,,,  (wk@tobold)
2225
2226         * dynload.c: New.
2227         * cipher.c: Major changes to allow extensions.
2228
2229 Mon Jun  8 22:43:00 1998  Werner Koch  (wk@isil.d.shuttle.de)
2230
2231         * cipher.c: Major internal chnages to support extensions.
2232         * blowfish.c (blowfish_get_info): New and made all internal
2233         functions static, changed heder.
2234         * cast5.c (cast5_get_info): Likewise.
2235
2236 Mon Jun  8 12:27:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
2237
2238         * tiger.c (transform): Fix for big endian
2239
2240         * cipher.c (do_cfb_decrypt): Big endian fix.
2241
2242 Fri May 22 07:30:39 1998  Werner Koch  (wk@isil.d.shuttle.de)
2243
2244         * md.c (md_get_oid): Add a new one for TIGER.
2245
2246 Thu May 21 13:24:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
2247
2248         * cipher.c: Add support for a dummy cipher
2249
2250 Thu May 14 15:40:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
2251
2252         * rmd160.c (transform): fixed sigbus - I should better
2253         add Christian von Roques's new implemenation of rmd160_write.
2254
2255 Fri May  8 18:07:44 1998  Werner Koch  (wk@isil.d.shuttle.de)
2256
2257         * rand-internal.h, rand-unix.c, rand-w32.c, rand_dummy.c: New
2258         * random.c: Moved system specific functions to rand-****.c
2259
2260 Fri May  8 14:01:17 1998  Werner Koch  (wk@isil.d.shuttle.de)
2261
2262         * random.c (fast_random_poll): add call to gethrtime.
2263
2264 Tue May  5 21:28:55 1998  Werner Koch  (wk@isil.d.shuttle.de)
2265
2266         * elgamal.c (elg_generate): choosing x was not correct, could
2267         yield 6 bytes which are not from the random pool, tsss, tsss..
2268
2269 Tue May  5 14:09:06 1998  Werner Koch  (wk@isil.d.shuttle.de)
2270
2271         * primegen.c (generate_elg_prime): Add arg mode, changed all
2272         callers and implemented mode 1.
2273
2274 Mon Apr 27 14:41:58 1998  Werner Koch  (wk@isil.d.shuttle.de)
2275
2276         * cipher.c (cipher_get_keylen): New.
2277
2278 Sun Apr 26 14:44:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
2279
2280         * tiger.c, tiger.h: New.
2281
2282 Wed Apr  8 14:57:11 1998  Werner Koch  (wk@isil.d.shuttle.de)
2283
2284         * misc.c (check_pubkey_algo2): New.
2285
2286 Tue Apr  7 18:46:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
2287
2288         * cipher.c: New
2289         * misc.c (check_cipher_algo): Moved to cipher.c
2290         * cast5.c: Moved many functions to cipher.c
2291         * blowfish.c: Likewise.
2292
2293 Sat Apr  4 19:52:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
2294
2295         * cast5.c: Implemented and tested.
2296
2297 Wed Apr  1 16:38:27 1998  Werner Koch  (wk@isil.d.shuttle.de)
2298
2299         * elgamal.c (elg_generate): Faster generation of x in some cases.
2300
2301 Thu Mar 19 13:54:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
2302
2303         * blowfish.c (blowfish_decode_cfb): changed XOR operation
2304         (blowfish_encode_cfb): Ditto.
2305
2306 Thu Mar 12 14:04:05 1998  Werner Koch  (wk@isil.d.shuttle.de)
2307
2308         * sha1.c (transform): Rewrote
2309
2310         * blowfish.c (encrypt): Unrolled for rounds == 16
2311         (decrypt): Ditto.
2312
2313 Tue Mar 10 16:32:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
2314
2315         * rmd160.c (transform): Unrolled the loop.
2316
2317 Tue Mar 10 13:05:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
2318
2319         * random.c (read_pool): Add pool_balance stuff.
2320         (get_random_bits): New.
2321
2322         * elgamal.c (elg_generate): Now uses get_random_bits to generate x.
2323
2324
2325 Tue Mar 10 11:33:51 1998  Werner Koch  (wk@isil.d.shuttle.de)
2326
2327         * md.c (md_digest_length): New.
2328
2329 Tue Mar 10 11:27:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
2330
2331         * dsa.c (dsa_verify): Works.
2332
2333 Mon Mar  9 12:59:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
2334
2335         * dsa.c, dsa.h: Removed some unused code.
2336
2337 Wed Mar  4 10:39:22 1998  Werner Koch  (wk@isil.d.shuttle.de)
2338
2339         * md.c (md_open): Add call to fast_random_poll.
2340         blowfish.c (blowfish_setkey): Ditto.
2341
2342 Tue Mar  3 13:32:54 1998  Werner Koch  (wk@isil.d.shuttle.de)
2343
2344         * rmd160.c (rmd160_mixblock): New.
2345         * random.c: Restructured to start with a new RNG implementation.
2346         * random.h: New.
2347
2348 Mon Mar  2 19:21:46 1998  Werner Koch  (wk@isil.d.shuttle.de)
2349
2350         * gost.c, gost.h: Removed because they did only conatin trash.
2351
2352 Sun Mar  1 16:42:29 1998  Werner Koch  (wk@isil.d.shuttle.de)
2353
2354         * random.c (fill_buffer): removed error message if n == -1.
2355
2356 Fri Feb 27 16:39:34 1998  Werner Koch  (wk@isil.d.shuttle.de)
2357
2358         * md.c (md_enable): No init if called twice.
2359
2360 Thu Feb 26 07:57:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
2361
2362         * primegen.c (generate_elg_prime): Changed the progress printing.
2363         (gen_prime): Ditto.
2364
2365 Tue Feb 24 12:28:42 1998  Werner Koch  (wk@isil.d.shuttle.de)
2366
2367         * md5.c, md.5 : Replaced by a modified version of md5.c from
2368         GNU textutils 1.22.
2369
2370 Wed Feb 18 14:08:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
2371
2372         * md.c, md.h : New debugging support
2373
2374 Mon Feb 16 10:08:47 1998  Werner Koch  (wk@isil.d.shuttle.de)
2375
2376         * misc.c (cipher_algo_to_string): New
2377         (pubkey_algo_to_string): New.
2378         (digest_algo_to_string): New.
2379
2380
2381  Copyright 1998,1999,2000,2001,2002,2003 Free Software Foundation, Inc.
2382
2383  This file is free software; as a special exception the author gives
2384  unlimited permission to copy and/or distribute it, with or without
2385  modifications, as long as this notice is preserved.
2386
2387  This file is distributed in the hope that it will be useful, but
2388  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
2389  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.