added RISC OS module loading support
[gnupg.git] / cipher / ChangeLog
1 2002-10-31  Stefan Bellon  <sbellon@sbellon.de>
2
3         * rndriscos.c (rndriscos_gather_random): Use riscos_load_module()
4         to load CryptRandom module.
5
6 2002-10-12  Werner Koch  <wk@gnupg.org>
7
8         * rndunix.c (my_popen): Make sure that stdin and stderr are
9         connected to a file.  This is to avoid NetBSD to complain about
10         set{u,g}id programs invoked with fd 0, 2 closed.  Reported by
11         Cristian Biere.
12         (start_gatherer): Likewise. Reordered code.
13
14 2002-10-02  David Shaw  <dshaw@jabberwocky.com>
15
16         * tiger.c (tiger_get_info): Select the OID to use for TIGER at
17         compile time.
18
19 2002-09-27  David Shaw  <dshaw@jabberwocky.com>
20
21         * Makefile.am, md.c (load_digest_module): TIGER is now always
22         enabled.
23
24 2002-09-26  Werner Koch  <wk@gnupg.org>
25
26         * tiger.c (tiger_get_info): Use a regular OID.  Note that this
27         breaks all TIGER generated signatures; if we want to do something
28         about it we have to do it in ../g10/sig-check.c .
29
30 2002-09-17  Werner Koch  <wk@gnupg.org>
31
32         * rndw32.c (SIZEOF_DISK_PERFORMANCE_STRUCT): Increased to 256.
33
34 2002-09-12  Stefan Bellon  <sbellon@sbellon.de>
35
36         * rand-internal.h (rndriscos_gather_random): Added prototype.
37
38 2002-08-30  Werner Koch  <wk@gnupg.org>
39
40         * random.c: Automagically detect the entropy gatherer when
41         this feature is configured.
42         * rndegd.c (rndegd_connect_socket): New.  Factored out from ..
43         (rndegd_gather_random): here and call it.
44         (do_read): Update the counter variables correctly.  This was not a
45         problem due to the way EGD works. Bug found by Christian Biere.
46
47 2002-08-20  Werner Koch  <wk@gnupg.org>
48
49         * primegen.c (generate_elg_prime): Return all factors for mode 1.
50         Bug reported by Bob Mathews.
51
52 2002-08-12  Werner Koch  <wk@gnupg.org>
53
54         * cipher.c: Include the DUMMY cipher only when the new ALLOW_DUMMY
55         is defined. It should only be defined for hard core debugging.
56
57 2002-08-08  David Shaw  <dshaw@jabberwocky.com>
58
59         * Makefile.am, md.c (load_digest_module): Allow switching TIGER on
60         and off via configure.
61
62 2002-08-07  David Shaw  <dshaw@jabberwocky.com>
63
64         * md.c (md_algo_present): New function to check if a given algo is
65         in use for a given MD_HANDLE.
66
67 2002-08-04  Werner Koch  <wk@gnupg.org>
68
69         * blowfish.h, cast5.h, des.h: Removed after moving all prototypes to
70         * algorithms.h: here. Changed all sources to use this one.
71         
72 2002-08-03  Stefan Bellon  <sbellon@sbellon.de>
73
74         * idea-stub.c (idea_get_info): RISC OS' Norcroft C needs a cast.
75         * random.c (getfnc_gather_random): Added RISC OS support.
76         * rndriscos.c: Removed dynload code and tidied up a bit.
77
78 2002-08-03  Werner Koch  <wk@gnupg.org>
79
80         * rndegd.c (do_read): Handle case when read returns 0 to avoid
81         gpg hanging when EGD died.  By Christian Biere.
82
83 2002-08-02  Werner Koch  <wk@gnupg.org>
84
85         The big extension removal.
86         
87         * Makefile.am: Removed all extension stuff.
88         * dynload.c: Removed everything except for
89         register_cipher_extension.
90         (dynload_enum_module_names): New.
91         * dynload.h: Removed.
92         * random.c (getfnc_gather_random,getfnc_fast_random_poll):
93         New. Replaced all dynload functions with these ones.
94         * rndunix.c (rndunix_gather_random): Renamed from
95         gather_random.  Made global.  Removed all dynload stuff.
96         * rndlinux.c (rndlinux_gather_random): Likewise.
97         * rndegd.c (rndegd_gather_random): Likewise.
98         * rndw32.c (rndw32_gather_random)
99         (rndw32_gather_random_fast): Likewise.  Also removed the unsued
100         entropy dll code.
101         * md.c (new_list_item): Changed return value to indicate whether
102         an algorithms was loaded.
103         (load_digest_module): Simplified by removing all the dynload code.
104         * algorithms.h: New.
105         * md5.c (md5_get_info): Made global.  Removed all dynload stuff.
106         * rmd160.c (rmd160_get_info): Likewise. 
107         * sha1.c (sha1_get_info): Likewise.
108         * tiger.c (tiger_get_info): Likewise. Return NULL if we can't use
109         this module.
110         * idea-stub.c: New.
111         * blowfish.h (idea_get_info): Add prototype.
112         * cipher.c (setup_cipher_table): Try to load IDEA.
113         (load_cipher_modules): Removed all dynload code.
114         * pubkey.c (load_pubkey_modules): Removed the dynloading code.
115
116 2002-07-25  David Shaw  <dshaw@jabberwocky.com>
117
118         * random.c: "warning" -> "WARNING"
119
120 2002-07-02  Werner Koch  <wk@gnupg.org>
121
122         * rndw32.c (slow_gatherer_windowsNT): Use a simple array for the
123         disk performance structure and increase it to the size required by
124         W2000.
125
126 2002-06-29  Werner Koch  <wk@gnupg.org>
127
128         * rndlinux.c: Removed HAVE_LINUX_RANDOM_H conditional because it
129         was never used and the configure test did set the wrong macro
130         anyway.
131
132 2002-05-07  Stefan Bellon  <sbellon@sbellon.de>
133
134         * md.c (md_start_debug): Use EXTSEP_S instead of ".".
135
136 2002-04-24  Werner Koch  <wk@gnupg.org>
137
138         * tiger.c (tiger_final): Removed superfluous token pasting operators.
139         * md5.c (md5_final): Ditto.
140
141 2002-04-22  Stefan Bellon  <sbellon@sbellon.de>
142
143         * rndriscos.c (func_table): Made func a function pointer.
144         (init_device): Improved loading of CryptRandom module.
145
146 2002-04-18  Werner Koch  <wk@gnupg.org>
147
148         * rndlinux.c, rndegd.c, rndunix.c (func_table): Made func a
149         function pointer.  Note that we still need to change the module
150         interface to cope with data vs function pointer problems.  Hmmm,
151         even dlsym has a problem with this.
152
153 2002-04-10  David Shaw  <dshaw@jabberwocky.com>
154
155         * cipher.c (setup_cipher_table, cipher_open, cipher_encrypt,
156         cipher_decrypt, dummy_setkey, dummy_encrypt_block,
157         dummy_decrypt_block): the dummy cipher should only be built on
158         development versions.
159
160 2002-04-06  Werner Koch  <wk@gnupg.org>
161
162         * rijndael.c (rijndael_get_info): We do only support a 128 bit
163         blocksize so it makes sense to change the algorithm strings to
164         AES.
165         * cipher.c (string_to_cipher_algo): Map "RIJNDAEL" to "AES".
166
167 2002-02-14  Werner Koch  <wk@gnupg.org>
168
169         * random.c (mix_pool): Removed the failsafe stuff again.  It makes
170         the code more complicate and may give the path to more bugs.
171
172 2002-02-10  Werner Koch  <wk@gnupg.org>
173
174         * random.c (mix_pool): Carry an extra failsafe_digest buffer
175         around to make the function more robust.
176
177 2002-02-08  Werner Koch  <wk@gnupg.org>
178
179         * random.c (add_randomness): Xor new data into the pool and not
180         just copy it.  This avoids any choosen input attacks which are not
181         serious in our setting because an outsider won't be able to mix
182         data in and even then we keep going with a PRNG.  Thanks to Stefan
183         Keller for pointing this out.
184
185 2002-01-02  Stefan Bellon  <sbellon@sbellon.de>
186
187         * rndriscos.c [__riscos__]: Updated include file name.
188
189 2001-12-21  Werner Koch  <wk@gnupg.org>
190
191         * Makefile.am (DISCLEANFILES): Add construct.c
192
193 2001-12-19  Werner Koch  <wk@gnupg.org>
194
195         * rndw32.c [CYGWIN32]: Include winioctl.h.  By Disastry.
196
197 2001-11-08  Werner Koch  <wk@gnupg.org>
198
199         * primegen.c (gen_prime): Set 2 high order bits for secret primes.
200         * rsa.c (generate): Loop until we find the exact modulus size.
201         Changed the exponent to 41.
202
203 2001-10-22  Werner Koch  <wk@gnupg.org>
204
205         * Makefile.am: Need to use $(EXEEXT) where approriate.
206
207 2001-09-09  Werner Koch  <wk@gnupg.org>
208
209         * rsa.c (rsa_get_info): s/usage/r_usage/ to avoid shadow warnings.
210
211 2001-08-24  Werner Koch  <wk@gnupg.org>
212
213         * md.c (md_write): Made buf arg const.
214
215 2001-08-22  Werner Koch  <wk@gnupg.org>
216
217         * random.c (fast_random_poll): Don't use gethrtime if it is broken.
218
219 2001-08-20  Werner Koch  <wk@gnupg.org>
220
221         Applied patches from Stefan Bellon <sbellon@sbellon.de> to support
222         RISC OS.  Nearly all of these patches are identified by the
223         __riscos__ macro.
224         * blowfish.c, twofish.c: Added pragmas for use with a Norcraft
225         compiler. 
226         * dynload.c, md5.c, rmd160.c, sha1.c: Minor patches for RISC OS.
227         * rndriscos.c: New.
228         * rnd-internal.h: Added prototype.
229         * random.c (fast_random_poll): Use '#if defined' instead of just
230         'defined'; needed for RISC OS.
231         * primegen.c (gen_prime): count? are now ints for consistence
232         with is_prime().
233
234 2001-08-08  Werner Koch  <wk@gnupg.org>
235
236         * rndw32.c (gather_random): Use toolhelp in addition to the NT
237         gatherer for Windows2000.  Suggested by Sami Tolvanen.
238
239         * random.c (read_pool): Fixed length check, this used to be one
240         byte to strict.  Made an assert out of it because the caller has
241         already made sure that only poolsize bytes are requested.
242         Reported by Marcus Brinkmann.
243
244 2001-07-18  Werner Koch  <wk@gnupg.org>
245
246         * rndlinux.c (gather_random): casted a size_t arg to int so that
247         the format string is correct.  Casting is okay here and avoids
248         translation changes. 
249
250 2001-06-12  Werner Koch  <wk@gnupg.org>
251
252         * cipher.c (string_to_cipher_algo): Use ascii_strcasecmp().
253         * md.c (string_to_digest_algo): Ditto.
254         * pubkey.c (string_to_pubkey_algo): Ditto.
255         * rndw32.c (slow_gatherer_windowsNT): Ditto.  Not really needed
256         here but anyway.
257
258 2001-04-29  Werner Koch  <wk@gnupg.org>
259
260         * random.c (fast_random_poll): Do not check the return code of
261         getrusage.
262
263 2001-04-17  Werner Koch  <wk@gnupg.org>
264
265         * rndunix.c: Add a signal.h header to avoid warnings on Solaris 7
266         and 8.
267
268 2001-04-16  Werner Koch  <wk@gnupg.org>
269
270         * dynload.c [__MINGW32__]: Applied patch from Timo Schulz to make
271         it work under W32.  This patches is based on the one from
272         Disastry@saiknes.lv
273
274 2001-04-06  Werner Koch  <wk@gnupg.org>
275
276         * rijndael.c, des.c, blowfish.c, twofish.c, cast5.c (burn_stack):
277         New.  Add wrappers for most functions to be able to call
278         burn_stack after the function invocation. This methods seems to be
279         the most portable way to zeroise the stack used. It does only work
280         on stack frame based machines but it is highly portable and has no
281         side effects.  Just setting the automatic variables at the end of
282         a function to zero does not work well because the compiler will
283         optimize them away - marking them as volatile would be bad for
284         performance.
285         * md5.c, sha1.c, rmd160.c, tiger.c (burn_stack): Likewise.
286         * random.c (burn_stack): New.
287         (mix_pool): Use it here to burn the stack of the mixblock function.
288         
289 2001-04-02  Werner Koch  <wk@gnupg.org>
290
291         * primegen.c (generate_elg_prime): I was not initialized for mode
292         != 1.  Freed q at 3 places.  Thanks to  Tommi Komulainen.
293
294 2001-03-28  Werner Koch  <wk@gnupg.org>
295
296         * md5.c (md5_final): Fixed calculation of hashed length.  Thanks
297         to disastry@saiknes.lv for pointing out that it was horrible wrong
298         for more than 512MB of input.
299         * sha1.c (sha1_final): Ditto.
300         * rmd160.c (rmd160_final): Ditto.
301         * tiger.c (tiger_final): Ditto.
302
303 2001-03-19  Werner Koch  <wk@gnupg.org>
304
305         * blowfish.c (encrypt,do_encrypt): Changed name to do_encrypt to
306         avoid name clahses with an encrypt function in stdlib.h of
307         Dynix/PIX.  Thanks to Gene Carter.
308         * elgamal.c (encrypt,do_encrypt): Ditto.
309
310 2001-03-12  Werner Koch  <wk@gnupg.org>
311
312         * twofish.c (gnupgext_enum_func): Add some static when comnpiled
313         as a module.
314
315         * tiger.c (tiger_get_info): Return "TIGER192" and not just
316         "TIGER".  By Edwin Woudt.
317
318 2001-03-08  Werner Koch  <wk@gnupg.org>
319
320         * random.c: Always include time.h - standard requirement.  Thanks
321         to James Troup.
322
323 2001-01-18  Werner Koch  <wk@gnupg.org>
324
325         * rndw32.c: Fixed typo and wrong ifdef for VER_PLATFORM* macro
326
327 2001-01-12  Werner Koch  <wk@gnupg.org>
328
329         * cipher.c (cipher_encrypt,cipher_encrypt): Use blocksize and
330         not 8 for CBC mode (However: we don't use CBS in OpenPGP).
331
332 2000-11-22  Werner Koch  <wk@gnupg.org>
333
334         * rndegd.c (gather_random): Fixed default socket to be '=entropy'.
335         Thanks to Tomasz Kozlowski.
336
337 2000-10-12  Werner Koch  <wk@gnupg.org>
338
339         * rijndael.c: New.
340         * cipher.c: Add Rijndael support.
341
342 Wed Oct  4 15:50:18 CEST 2000  Werner Koch  <wk@openit.de>
343
344         * sha1.c (transform): Use rol() macro.  Actually this is not needed
345         for a newer gcc but there are still aoter compilers.
346
347 Thu Sep 14 14:20:38 CEST 2000  Werner Koch  <wk@openit.de>
348
349         * random.c (fast_random_poll): Check ENOSYS for getrusage.
350         * rndunix.c:  Add 2 sources for QNX. By Sam Roberts.
351
352 Wed Sep 13 18:12:34 CEST 2000  Werner Koch  <wk@openit.de>
353
354         * rsa.c (secret): Speed up by using the CRT.  For a 2k keys this
355         is about 3 times faster.
356         (stronger_key_check): New but unused code to check the secret key.
357
358 Wed Sep  6 17:55:47 CEST 2000  Werner Koch  <wk@openit.de>
359
360         * rsa.c: Changed the comment about the patent.
361         * Makefile.am: Included rsa.[ch].
362         * pubkey.c: Enabled RSA support.
363         (pubkey_get_npkey): Removed RSA workaround.
364
365 Fri Aug 25 16:05:38 CEST 2000  Werner Koch  <wk@openit.de>
366
367         * rndlinux.c (open_device): Loose random device checking.
368         By Nils Ellmenreich.
369
370         * rndegd.c (gather_random): Name of socket is nom configurable.
371
372 Wed Jun 28 11:54:44 CEST 2000  Werner Koch  <wk@>
373
374   * rsa.c, rsa.h: New based on the old module version (only in CVS for now).
375   * pubkey.c (setup_pubkey_table): Added commented support for RSA.
376
377 Fri Jun  9 10:09:52 CEST 2000  Werner Koch  <wk@openit.de>
378
379   * rndunix.c (waitpid): New. For UTS 2.1.  All by Dave Dykstra.
380   (my_popen): Do the FD_CLOEXEC only if it is available
381   (start_gatherer): Cope with missing _SC_OPEN_MAX
382
383 Sun May 28 13:55:17 CEST 2000  Werner Koch  <wk@openit.de>
384
385   * random.c (read_seed_file): Binary open for DOSish system
386   (update_random_seed_file): Ditto.
387
388   * rndw32.c: Add some debuging code enabled by an environment variable.
389
390 Tue May 23 09:19:00 CEST 2000  Werner Koch  <wk@openit.de>
391
392         * rndw32.c: Started with alternative code to replace entropy.dll
393
394 Thu May 18 11:38:54 CEST 2000  Werner Koch  <wk@openit.de>
395
396         * primegen.c (register_primegen_progress): New.
397         * dsa.c (register_pk_dsa_progress): New.
398         * elgamal.c (register_pk_elg_progress): New.
399
400 Fri Apr 14 19:37:08 CEST 2000  Werner Koch  <wk@openit.de>
401
402         * twofish.c (twofish_get_info): Fixed warning about cast.
403
404 Tue Mar 28 14:26:58 CEST 2000  Werner Koch  <wk@openit.de>
405
406         * random.c [MINGW32]: Include process.h for getpid.
407
408 Thu Mar  2 15:37:46 CET 2000  Werner Koch  <wk@gnupg.de>
409
410         * random.c (fast_random_poll): Add clock_gettime() as fallback for
411         system which support this POSIX.4 fucntion. By Sam Roberts.
412
413         * rndunix.c: Add some more headers for QNX. By Sam Roberts.
414
415         * random.c (read_seed_file): Removed the S_ISLNK test becuase it
416         is already covered by !S_ISREG and is not defined in Unixware.
417         Reported by Dave Dykstra.
418
419         * sha1.c (sha1_get_info): Removed those stupid double lines. Dave
420         is really a good lint.
421
422 Wed Feb 23 10:07:57 CET 2000  Werner Koch  <wk@gnupg.de>
423
424         * twofish.c (twofish_get_info): Add some const to the casts.  By Martin
425         Kahlert.
426
427 Mon Feb 14 14:30:20 CET 2000  Werner Koch  <wk@gnupg.de>
428
429         (update_random_seed_file): Silently ignore update request when pool
430         is not filled.
431
432 Fri Feb 11 17:44:40 CET 2000  Werner Koch  <wk@gnupg.de>
433
434         * random.c (read_seed_file): New.
435         (set_random_seed_file): New.
436         (read_pool): Try to read the seeding file.
437         (update_random_seed_file): New.
438
439         (read_pool): Do an initial extra seeding when level 2 quality random
440         is requested the first time.  This requestes at least POOLSIZE/2 bytes
441         of entropy.  Compined with the seeding file this should make normal
442         random bytes cheaper and increase the quality of the random bytes
443         used for key generation.
444
445         * rndegd.c (gather_random): Shortcut level 0.
446         * rndunix.c (gather_random): Ditto.
447         * rndw32.c (gather_random): Ditto.
448
449 Fri Jan 14 18:32:01 CET 2000  Werner Koch  <wk@gnupg.de>
450
451         * rmd160.c (rmd160_get_info): Moved casting to the left side due to a
452         problem with UTS4.3.  Suggested by Dave Dykstra.
453         * sha1.c (sha1_get_info): Ditto.
454         * tiger.c (tiger_get_info): Ditto.
455         * md5.c (md5_get_info): Ditto
456         * des.c (des_get_info): Ditto.
457         * blowfish.c (blowfish_get_info): Ditto.
458         * cast5.c (cast5_get_info): Ditto.
459         * twofish.c (twofish_get_info): Ditto.
460
461 Thu Jan 13 19:31:58 CET 2000  Werner Koch  <wk@gnupg.de>
462
463         * elgamal.c (wiener_map): New.
464         (gen_k): Use a much smaller k.
465         (generate): Calculate the qbits using the wiener map and
466         choose an x at a size comparable to the one choosen in gen_k
467
468         * random.c (read_pool): Print a more friendly error message in
469         cases when too much random is requested in one call.
470
471         * Makefile.am (tiger): Replaced -O1 by -O. Suggested by Alec Habig.
472
473 Sat Dec  4 12:30:28 CET 1999  Werner Koch  <wk@gnupg.de>
474
475         * primegen.c (generate_elg_prime): All primes are now generated with
476         the lowest random quality level.  Becuase they are public anyway we
477         don't need stronger random and by this we do not drain the systems
478         entropy so much.
479
480 Thu Oct 28 16:08:20 CEST 1999  Werner Koch  <wk@gnupg.de>
481
482         * random.c (fast_random_poll): Check whether RUSAGE_SELF is defined;
483         this is not the case for some ESIX and Unixware, although they have
484         getrusage().
485
486         * elgamal.c (sign): Hugh found strange code here. Replaced by BUG().
487
488 Mon Oct 11 09:24:12 CEST 1999  Werner Koch  <wk@gnupg.de>
489
490         * rndw32.c (gather_random): Handle PCP_SEEDER_TOO_SMALL.
491
492 Sat Oct  9 20:34:41 CEST 1999  Werner Koch  <wk@gnupg.de>
493
494         * Makefile.am:  Tweaked module build and removed libtool
495
496 Fri Oct  8 20:32:01 CEST 1999  Werner Koch  <wk@gnupg.de>
497
498         * rndw32.c (load_and_init_winseed): Use the Registry to locate the DLL
499
500 Mon Oct  4 21:23:04 CEST 1999  Werner Koch  <wk@gnupg.de>
501
502         * md.c (md_reset): Clear finalized; thanks to Ulf Moeller for
503         fixing this bug.
504
505 Sat Sep 18 12:51:51 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
506
507         * Makefile.am: Never compile mingw32 as module
508
509 Wed Sep 15 14:39:59 CEST 1999  Michael Roth <mroth@nessie.de>
510
511         * des.c: Various speed improvements: One bit pre rotation
512           trick after initial permutation (Richard Outerbridge).
513           Finished test of SSLeay Tripple-DES patterns.
514
515 Wed Sep 15 16:22:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
516
517         * rndw32.c: New.
518
519 Mon Sep 13 10:51:29 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
520
521         * bithelp.h: New.
522         * rmd160.h, sha1.h, md5.h: Use the rol macro from bithelp.h
523
524 Tue Sep  7 16:23:36 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
525
526         * Makefile.am: Fixed seds for latest egcc. By Ollivier Robert.
527
528 Mon Sep  6 19:59:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
529
530         * des.c (selftest): Add some testpattern
531
532 Mon Aug 30 20:38:33 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
533
534         * cipher.c (do_cbc_encrypt): Fixed serious bug occuring when not using
535         in place encryption. Pointed out by Frank Stajano.
536
537 Mon Jul 26 09:34:46 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
538
539         * md5.c (md5_final): Fix for a SCO cpp bug.
540
541 Thu Jul 15 10:15:35 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
542
543         * elgamal.c (elg_check_secret_key,elg_encrypt
544         elg_decrypt,elg_sign,elg_verify): Sanity check on the args.
545         * dsa.c (dsa_check_secret_key,dsa_sign,dsa_verify): Ditto.
546
547         * pubkey.c (disable_pubkey_algo): New.
548         (check_pubkey_algo2): Look at disabled algo table.
549         * cipher.c (disable_cipher_algo): New.
550         (check_cipher_algo): Look at disabled algo table.
551
552 Wed Jul  7 13:08:40 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
553
554         * Makefile.am: Support for libtool.
555
556 Fri Jul  2 11:45:54 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
557
558         * dsa.c (gen_k): Changed algorithm to consume less random bytes
559         * elgamal.c (gen_k): Ditto.
560
561         * random.c (random_dump_stats): New.
562
563 Thu Jul  1 12:47:31 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
564
565         * primegen.c, elgamal.c, dsa.c (progess): New and replaced all
566         fputc with a call to this function.
567
568 Sat Jun 26 12:15:59 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
569
570         * rndegd.c (do_write): s/ssize_t/int/ due to SunOS 4.1 probs.
571
572         * cipher.c (do_cbc_encrypt, do_cbc_decrypt): New.
573
574         * dynload.c (HAVE_DL_SHL_LOAD): Map hpux API to dlopen (Dave Dykstra).
575         * Makefile.am (install-exec-hook): Removed.
576
577 Sun May 23 14:20:22 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
578
579         * cipher.c (setup_cipher_table): Enable Twofish
580
581         * random.c (fast_random_poll): Disable use of times() for mingw32.
582
583 Mon May 17 21:54:43 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
584
585         * dynload.c (register_internal_cipher_extension): Minor init fix.
586
587 Tue May  4 15:47:53 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
588
589         * primegen.c (gen_prime): Readded the Fermat test. Fixed the bug
590         that we didn't correct for step when passing the prime to the
591         Rabin-Miller test which led to bad performance (Stefan Keller).
592         (check_prime): Add a first Fermat test.
593
594 Sun Apr 18 10:11:28 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
595
596         * cipher.c (cipher_setiv): Add ivlen arg, changed all callers.
597
598         * random.c (randomize_buffer): alway use secure memory because
599         we can't use m_is_secure() on a statically allocated buffer.
600
601         * twofish.c: Replaced some macros by a loop to reduce text size.
602         * Makefile.am (twofish): No more need for sed editing.
603
604 Fri Apr  9 12:26:25 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
605
606         * cipher.c (cipher_open): Reversed the changes for AUTO_CFB.
607
608         * blowfish.c: Dropped the Blowfish 160 mode.
609         * cipher.c (cipher_open): Ditto.
610         (setup_cipher_table): Ditto.  And removed support of twofish128
611
612 Wed Apr  7 20:51:39 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
613
614         * random.c (get_random_bits): Can now handle requests > POOLSIZE
615
616         * cipher.c (cipher_open): Now uses standard CFB for automode if
617         the blocksize is gt 8 (according to rfc2440).
618
619         * twofish.c: Applied Matthew Skala's patches for 256 bit key.
620
621 Tue Apr  6 19:58:12 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
622
623         * random.c (get_random_bits): Can now handle requests > POOLSIZE
624
625         * cipher.c (cipher_open): Now uses standard CFB for automode if
626         the blocksize is gt 8 (according to rfc2440).
627
628 Sat Mar 20 11:44:21 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
629
630         * rndlinux.c (tty_printf) [IS_MODULE]: Removed.
631
632         * rndegd.c (gather_random): Some fixes.
633
634 Wed Mar 17 13:09:03 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
635
636         * rndegd.c (do_read): New.
637         (gather_random): Changed the implementation.
638
639 Mon Mar  8 20:47:17 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
640
641         * dynload.c (DLSYM_NEEDS_UNDERSCORE): Renamed.
642
643 Fri Feb 26 17:55:41 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
644
645         * md.c: Nearly a total rewrote.
646
647 Wed Feb 24 11:07:27 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
648
649         * cipher.c (context): Fixed alignment
650         * md.c: Ditto.
651
652         * rndegd.c: New
653
654 Mon Feb 22 20:04:00 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
655
656         * rndegd.c: New.
657
658 Wed Feb 10 17:15:39 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
659
660         * Makefile.am: Modules are now figured out by configure
661         * construct.c: New. Generated by configure. Changed all modules
662         to work with that.
663         * sha1.h: Removed.
664         * md5.h: Removed.
665
666         * twofish.c: Changed interface to allow Twofish/256
667
668         * rndunix.c (start_gatherer): Die on SIGPIPE.
669
670 Wed Jan 20 18:59:49 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
671
672         * rndunix.c (gather_random): Fix to avoid infinite loop.
673
674 Sun Jan 17 11:04:33 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
675
676         * des.c (is_weak_key): Replace system memcmp due to bugs
677         in SunOS's memcmp.
678         (des_get_info): Return error on failed selftest.
679         * twofish.c (twofish_setkey): Return error on failed selftest or
680         invalid keylength.
681         * cast5.c (cast_setkey): Ditto.
682         * blowfish.c (bf_setkey): Return error on failed selftest.
683
684 Tue Jan 12 11:17:18 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
685
686         * random.c (random_is_faked): New.
687
688         * tiger.c: Only compile if we have the u64 type
689
690 Sat Jan  9 16:02:23 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
691
692         * rndunix.c (gather_random): check for setuid.
693
694         * Makefile.am: Add a way to staically link random modules
695
696 Thu Jan  7 18:00:58 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
697
698         * md.c (md_stop_debug): Do a flush first.
699         (md_open): size of buffer now depends on the secure parameter
700
701 Sun Jan  3 15:28:44 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
702
703         * rndunix.c (start_gatherer): Fixed stupid ==/= bug
704
705 1998-12-31  Geoff Keating  <geoffk@ozemail.com.au>
706
707         * des.c (is_weak_key): Rewrite loop end condition.
708
709 Tue Dec 29 14:41:47 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
710
711         * random.c: add unistd.h for getpid().
712         (RAND_MAX): Fallback value for Sun.
713
714 Wed Dec 23 17:12:24 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
715
716         * md.c (md_copy): Reset debug.
717
718 Mon Dec 14 21:18:49 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
719
720         * random.c (read_random_source): Changed the interface to the
721         random gathering function.
722         (gather_faked): Use new interface.
723         * dynload.c (dynload_getfnc_fast_random_poll): Ditto.
724         (dynload_getfnc_gather_random): Ditto.
725         * rndlinux.c (gather_random): Ditto.
726         * rndunix.c (gather_random): Ditto.
727
728 Sat Dec 12 18:40:32 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
729
730         * dynload.c (SYMBOL_VERSION): New to cope with system which needs
731         underscores.
732
733         * rndunix.c: Rewrote large parts
734
735 Thu Dec 10 20:15:36 CET 1998  Werner Koch  <wk@isil.d.shuttle.de>
736
737         * dynload.c (load_extension): increased needed verbosity level.
738
739         * random.c (fast_random_poll): Fallback to a default fast random
740         poll function.
741         (read_random_source): Always use the faked entroy gatherer if no
742         gather module is available.
743         * rndlinux.c (fast_poll): Removed.
744         * rndunix.c (fast_poll): Removed.
745
746
747 Wed Nov 25 12:33:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
748
749         * rand-*.c: Removed.
750         * rndlinux.c : New.
751         * rndunix.c : New.
752         * random.c : Restructured the interface to the gather modules.
753         (intialize): Call constructor functions
754         (read_radnom_source): Moved to here.
755         * dynload.c (dynload_getfnc_gather_random): New.
756         (dynload_getfnc_fast_random_poll): New.
757         (register_internal_cipher_extension): New.
758         (register_cipher_extension): Support of internal modules.
759
760 Sun Nov  8 17:44:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
761
762         * rand-unix.c (read_random_source): Removed the assert.
763
764 Mon Oct 19 18:34:30 1998  me,,,  (wk@tobold)
765
766         * pubkey.c: Hack to allow us to give some info about RSA keys back.
767
768 Thu Oct 15 11:47:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
769
770         * dynload.c: Support for DLD
771
772 Wed Oct 14 12:13:07 1998  Werner Koch  (wk@isil.d.shuttle.de)
773
774         * rand-unix.c: Now uses names from configure for /dev/random.
775
776 1998-10-10  SL Baur  <steve@altair.xemacs.org>
777
778         * Makefile.am: fix sed -O substitutions to catch -O6, etc.
779
780 Tue Oct  6 10:06:32 1998  Werner Koch  (wk@isil.d.shuttle.de)
781
782         * rand-unix.c (HAVE_GETTIMEOFDAY): Fixed (was ..GETTIMEOFTIME :-)
783         * rand-dummy.c (HAVE_GETTIMEOFDAY): Ditto.
784
785 Mon Sep 28 13:23:09 1998  Werner Koch  (wk@isil.d.shuttle.de)
786
787         * md.c (md_digest): New.
788         (md_reset): New.
789
790 Wed Sep 23 12:27:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
791
792         * tiger.c (TIGER_CONTEXT): moved "buf", so that it is 64 bit aligned.
793
794 Mon Sep 21 06:22:53 1998  Werner Koch  (wk@(none))
795
796         * des.c: Some patches from Michael.
797
798 Thu Sep 17 19:00:06 1998  Werner Koch  (wk@(none))
799
800         * des.c : New file from Michael Roth <mroth@nessie.de>
801
802 Mon Sep 14 11:10:55 1998  Werner Koch  (wk@(none))
803
804         * blowfish.c (bf_setkey): Niklas Hernaeus patch to detect weak keys.
805
806 Mon Sep 14 09:19:25 1998  Werner Koch  (wk@(none))
807
808         * dynload.c (RTLD_NOW): Now defined to 1 if it is undefined.
809
810 Mon Sep  7 17:04:33 1998  Werner Koch  (wk@(none))
811
812         * Makefile.am: Fixes to allow a different build directory
813
814 Thu Aug  6 17:25:38 1998  Werner Koch,mobil,,,  (wk@tobold)
815
816         * random.c (get_random_byte): Removed and changed all callers
817         to use get_random_bits()
818
819 Mon Jul 27 10:30:22 1998  Werner Koch  (wk@(none))
820
821         * cipher.c : Support for other blocksizes
822         (cipher_get_blocksize): New.
823         * twofish.c: New.
824         * Makefile.am: Add twofish module.
825
826 Mon Jul 13 21:30:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
827
828         * random.c (read_pool): Simple alloc if secure_alloc is not set.
829         (get_random_bits): Ditto.
830
831 Thu Jul  9 13:01:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
832
833         * dynload.c (load_extension): Function now nbails out if
834         the program is run setuid.
835
836 Wed Jul  8 18:58:23 1998  Werner Koch  (wk@isil.d.shuttle.de)
837
838         * rmd160.c (rmd160_hash_buffer): New.
839
840 Thu Jul  2 10:50:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
841
842         * cipher.c (cipher_open): algos >=100 use standard CFB
843
844 Thu Jun 25 11:18:25 1998  Werner Koch  (wk@isil.d.shuttle.de)
845
846         * Makefile.am: Support for extensions
847
848 Thu Jun 18 12:09:38 1998  Werner Koch  (wk@isil.d.shuttle.de)
849
850         * random.c (mix_pool): simpler handling for level 0
851
852 Mon Jun 15 14:40:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
853
854         * tiger.c: Removed from dist, will reappear as dynload module
855
856 Sat Jun 13 14:16:57 1998  Werner Koch  (wk@isil.d.shuttle.de)
857
858         * pubkey.c: Major changes to allow extensions. Changed the inteface
859         of all public key ciphers and added the ability to load extensions
860         on demand.
861
862         * misc.c: Removed.
863
864 Wed Jun 10 07:52:08 1998  Werner Koch,mobil,,,  (wk@tobold)
865
866         * dynload.c: New.
867         * cipher.c: Major changes to allow extensions.
868
869 Mon Jun  8 22:43:00 1998  Werner Koch  (wk@isil.d.shuttle.de)
870
871         * cipher.c: Major internal chnages to support extensions.
872         * blowfish.c (blowfish_get_info): New and made all internal
873         functions static, changed heder.
874         * cast5.c (cast5_get_info): Likewise.
875
876 Mon Jun  8 12:27:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
877
878         * tiger.c (transform): Fix for big endian
879
880         * cipher.c (do_cfb_decrypt): Big endian fix.
881
882 Fri May 22 07:30:39 1998  Werner Koch  (wk@isil.d.shuttle.de)
883
884         * md.c (md_get_oid): Add a new one for TIGER.
885
886 Thu May 21 13:24:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
887
888         * cipher.c: Add support for a dummy cipher
889
890 Thu May 14 15:40:36 1998  Werner Koch  (wk@isil.d.shuttle.de)
891
892         * rmd160.c (transform): fixed sigbus - I should better
893         add Christian von Roques's new implemenation of rmd160_write.
894
895 Fri May  8 18:07:44 1998  Werner Koch  (wk@isil.d.shuttle.de)
896
897         * rand-internal.h, rand-unix.c, rand-w32.c, rand_dummy.c: New
898         * random.c: Moved system specific functions to rand-****.c
899
900 Fri May  8 14:01:17 1998  Werner Koch  (wk@isil.d.shuttle.de)
901
902         * random.c (fast_random_poll): add call to gethrtime.
903
904 Tue May  5 21:28:55 1998  Werner Koch  (wk@isil.d.shuttle.de)
905
906         * elgamal.c (elg_generate): choosing x was not correct, could
907         yield 6 bytes which are not from the random pool, tsss, tsss..
908
909 Tue May  5 14:09:06 1998  Werner Koch  (wk@isil.d.shuttle.de)
910
911         * primegen.c (generate_elg_prime): Add arg mode, changed all
912         callers and implemented mode 1.
913
914 Mon Apr 27 14:41:58 1998  Werner Koch  (wk@isil.d.shuttle.de)
915
916         * cipher.c (cipher_get_keylen): New.
917
918 Sun Apr 26 14:44:52 1998  Werner Koch  (wk@isil.d.shuttle.de)
919
920         * tiger.c, tiger.h: New.
921
922 Wed Apr  8 14:57:11 1998  Werner Koch  (wk@isil.d.shuttle.de)
923
924         * misc.c (check_pubkey_algo2): New.
925
926 Tue Apr  7 18:46:49 1998  Werner Koch  (wk@isil.d.shuttle.de)
927
928         * cipher.c: New
929         * misc.c (check_cipher_algo): Moved to cipher.c
930         * cast5.c: Moved many functions to cipher.c
931         * blowfish.c: Likewise.
932
933 Sat Apr  4 19:52:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
934
935         * cast5.c: Implemented and tested.
936
937 Wed Apr  1 16:38:27 1998  Werner Koch  (wk@isil.d.shuttle.de)
938
939         * elgamal.c (elg_generate): Faster generation of x in some cases.
940
941 Thu Mar 19 13:54:48 1998  Werner Koch  (wk@isil.d.shuttle.de)
942
943         * blowfish.c (blowfish_decode_cfb): changed XOR operation
944         (blowfish_encode_cfb): Ditto.
945
946 Thu Mar 12 14:04:05 1998  Werner Koch  (wk@isil.d.shuttle.de)
947
948         * sha1.c (transform): Rewrote
949
950         * blowfish.c (encrypt): Unrolled for rounds == 16
951         (decrypt): Ditto.
952
953 Tue Mar 10 16:32:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
954
955         * rmd160.c (transform): Unrolled the loop.
956
957 Tue Mar 10 13:05:14 1998  Werner Koch  (wk@isil.d.shuttle.de)
958
959         * random.c (read_pool): Add pool_balance stuff.
960         (get_random_bits): New.
961
962         * elgamal.c (elg_generate): Now uses get_random_bits to generate x.
963
964
965 Tue Mar 10 11:33:51 1998  Werner Koch  (wk@isil.d.shuttle.de)
966
967         * md.c (md_digest_length): New.
968
969 Tue Mar 10 11:27:41 1998  Werner Koch  (wk@isil.d.shuttle.de)
970
971         * dsa.c (dsa_verify): Works.
972
973 Mon Mar  9 12:59:08 1998  Werner Koch  (wk@isil.d.shuttle.de)
974
975         * dsa.c, dsa.h: Removed some unused code.
976
977 Wed Mar  4 10:39:22 1998  Werner Koch  (wk@isil.d.shuttle.de)
978
979         * md.c (md_open): Add call to fast_random_poll.
980         blowfish.c (blowfish_setkey): Ditto.
981
982 Tue Mar  3 13:32:54 1998  Werner Koch  (wk@isil.d.shuttle.de)
983
984         * rmd160.c (rmd160_mixblock): New.
985         * random.c: Restructured to start with a new RNG implementation.
986         * random.h: New.
987
988 Mon Mar  2 19:21:46 1998  Werner Koch  (wk@isil.d.shuttle.de)
989
990         * gost.c, gost.h: Removed because they did only conatin trash.
991
992 Sun Mar  1 16:42:29 1998  Werner Koch  (wk@isil.d.shuttle.de)
993
994         * random.c (fill_buffer): removed error message if n == -1.
995
996 Fri Feb 27 16:39:34 1998  Werner Koch  (wk@isil.d.shuttle.de)
997
998         * md.c (md_enable): No init if called twice.
999
1000 Thu Feb 26 07:57:02 1998  Werner Koch  (wk@isil.d.shuttle.de)
1001
1002         * primegen.c (generate_elg_prime): Changed the progress printing.
1003         (gen_prime): Ditto.
1004
1005 Tue Feb 24 12:28:42 1998  Werner Koch  (wk@isil.d.shuttle.de)
1006
1007         * md5.c, md.5 : Replaced by a modified version of md5.c from
1008         GNU textutils 1.22.
1009
1010 Wed Feb 18 14:08:30 1998  Werner Koch  (wk@isil.d.shuttle.de)
1011
1012         * md.c, md.h : New debugging support
1013
1014 Mon Feb 16 10:08:47 1998  Werner Koch  (wk@isil.d.shuttle.de)
1015
1016         * misc.c (cipher_algo_to_string): New
1017         (pubkey_algo_to_string): New.
1018         (digest_algo_to_string): New.
1019
1020
1021
1022  Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
1023
1024  This file is free software; as a special exception the author gives
1025  unlimited permission to copy and/or distribute it, with or without
1026  modifications, as long as this notice is preserved.
1027
1028  This file is distributed in the hope that it will be useful, but
1029  WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
1030  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
1031
1032