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