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