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