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