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