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